[phone]找连续字符组成的substring的组成char

来源:互联网 发布:压缩感知 知乎 编辑:程序博客网 时间:2024/05/29 04:21

其实是个很easy的问题,但是当时的code就是写的很垃圾,提示再三才写了这么一个code,应该还有可以improve的空间。

典型的双指针问题,一前一后找substring,这里要考虑如何节省空间,尽可能的少存解。要求 one loop

例如 abcdefg....xyzz 

input"thiisiissoodd", returns i i s o d 

input2 "thiiissisoodd" return i



public static ArrayList<Character> longestSubstr2(String s){int maxlen = 0;ArrayList<Character> res = new ArrayList<Character>();if(s == null || s.length() == 0) return res;if(s.length() == 0){res.add(s.charAt(0));return res;}//two pointer to loopint prev = 0;for(int i = 1; i <= s.length(); i++){//pay attention to lastif(i < s.length() &&s.charAt(i) != s.charAt(prev) ){//updateif(i - prev  > maxlen){//only put in map if > maxlenres = new ArrayList<Character>();}maxlen = Math.max(maxlen, i - prev );if(i - prev == maxlen) res.add(s.charAt(prev));prev = i;}else if(i == s.length()){if(i - prev  > maxlen){//only put in map if > maxlenres = new ArrayList<Character>();}maxlen = Math.max(maxlen, i - prev );if(i - prev == maxlen) res.add(s.charAt(prev));}}return res;}




0 0
原创粉丝点击