LeetCode字符串问题汇总!

一、LeetCode-3、无重复字符的最长子串
  • 解题思路:这里利用容器的contains方法,来方便的判断是否已经存在字符,将字符串的每个字符拿出来添加,看容器中是否存在该字符,这里需要注意的是,要删除的是该字符之前的所有字符,而不是直接将容器清空!!。
public int lengthOfLongestSubstring(String s) {
       int result = 0;
        List ls = new ArrayList<String>();
        for (int i = 0; i < s.length(); i++) {
            String str=new String(new char[] {s.charAt(i)});
            
            if (ls.contains(str)) {
                if (result<ls.size()) {
                    result=ls.size();
                }
                int len=ls.indexOf(str);
                for (int j = 0; j <= len; j++) {
                    ls.remove(0);
                }
                ls.add(str);
            }else {
                ls.add(str);
            }
        }
        return result>ls.size()?result:ls.size();
    }
二、LeetCode-14、最长公共前缀
  • 解题思路:首先取出来第一个字符串,利用while循环遍历,直到循环体中的字符串以str开头。
  • 注意:这里的while循环使用的太巧妙了!!
 public String longestCommonPrefix(String[] strs) {
        if(strs.length == 0){
            return "";
        }
        String str = strs[0];
        for(int i = 1; i < strs.length; i++){
            while(strs[i].indexOf(str) != 0){
                str=str.substring(0, str.length() - 1);
            }
        }
        return str;
    }

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-common-prefix/comments/

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容