【LeetCode】467. Unique Substrings in Wraparound String
来源:互联网 发布:剑网3官方正太捏脸数据 编辑:程序博客网 时间:2024/06/06 14:10
var findSubstringInWraproundString = function(p) { var b = {}; var findZ = 0; for(var i=0;i<p.length;i++){ // b[p.substring(i,i)]=1; findZ = 0; for(var j=i;j<p.length;j++){ // console.log(i+' ,'+j+': '+(p[j].charCodeAt())-(p[i].charCodeAt())) /*if((p[j].charCodeAt())-(p[i].charCodeAt())==(j-i)){ b[p.substring(i,j+1)]=1; // continue; }else */if(/*findZ && */(p[j].charCodeAt())-(p[i].charCodeAt())==(j-i)-26*findZ){ b[p.substring(i,j+1)]?b[p.substring(i,j+1)]++:b[p.substring(i,j+1)]=1; // continue; }else{ findZ = 0; break; } if(p.charAt(j)=="z"){ findZ ++; } } } return Object.keys(b).length; // for(var key in b){ // console.log(b[key]+" : "+key); // }};
程序运行的结果是正确的。且可以实现,查找子串出现的次数。但是,时间太长,提交的时候,最后一个黑盒超出时间,出错。
若干个坑:
p.substring(i,j): i,j一致,返回为”。这会导致很多单个字母不能出现。
方法二:
aaa=function(p){ var start = 0; var sbstring = {} p=p+'0'; var isConti = false; var b; for(var i=0;i<p.length-1;i++){ b = p[i+1].charCodeAt() - p[i].charCodeAt(); sbstring[p.substring(i,i+1)] ?sbstring[p.substring(i,i+1)]++:sbstring[p.substring(i,i+1)]=1; if(b==1 || b== -25){ if(!isConti){ isConti = true; start = i; (sbstring[p.substring(start,i+2)]) ?sbstring[p.substring(start,i+2)]++:sbstring[p.substring(start,i+2)]=1; }else{ (sbstring[p.substring(start,i+2)]) ?sbstring[p.substring(start,i+2)]++:sbstring[p.substring(start,i+2)]=1; //i = start; } }else{ if(isConti){ i = start; } isConti = false; // i = start ; } } for(var key in sbstring){ console.log(sbstring[key]+" :"+key); }}
该方法看似简单许多,但其实复杂度仍然是O(n2)。因为涉及到了求出所有子串。就本题而言,其只要求出个数的话,完全可以累积”连片字母”长度的阶乘和,计算出结果。可以简化问题的难度。
0 0
- Leetcode-467. Unique Substrings in Wraparound String
- Leetcode 467. Unique Substrings in Wraparound String
- 【LeetCode】467. Unique Substrings in Wraparound String
- Leetcode-467. Unique Substrings in Wraparound String
- [LeetCode]467. Unique Substrings in Wraparound String
- **LeetCode 467. Unique Substrings in Wraparound String
- 【LeetCode】467. Unique Substrings in Wraparound String
- LeetCode 467. Unique Substrings in Wraparound String
- [leetcode]467. Unique Substrings in Wraparound String
- [LeetCode] 467. Unique Substrings in Wraparound String
- Leetcode:467. Unique Substrings in Wraparound String
- leetcode 467. Unique Substrings in Wraparound String
- [LeetCode]Unique Substrings in Wraparound String
- [leetcode 467]Unique Substrings in Wraparound String
- Leetcode-Unique Substrings in Wraparound String
- leetcode Unique Substrings in Wraparound String
- [Leetcode.467]Unique Substrings in Wraparound String
- [LeetCode]Unique Substrings in Wraparound String
- ionic参数传递及临时存储及长期存储的思路
- 外观模式
- 存储过程详解
- Objective-C 编码规范
- 介绍几个图处理和流处理大数据平台
- 【LeetCode】467. Unique Substrings in Wraparound String
- ionic—cordova如何一次上传多张图片(类似input file提交表单)
- zzulioj 1963:Deadline
- usaco2.4.2 Overfencing
- 文件按层级打印
- IO流总结
- 牛顿迭代法
- 蓝桥杯第六届 无穷分数(递归)
- ionic+angular 真机调试