1. 程式人生 > >LeetCode -- 3. 無重複字元的最長子串 java

LeetCode -- 3. 無重複字元的最長子串 java

題目描述:

解題思路:可以String類的方法,用兩層迴圈,第一層迴圈是不斷從前往後走,用  i  遍歷字串,第二層迴圈則從第一層迴圈開始往後查詢最長無重複子串。在第二層迴圈中,每次按照索引  j  將字串拆分成子串,然後再從  i  開始查詢該子串的位置,如果該位置就是索引  j  當前的位置,則繼續往下尋找, 否則跳出迴圈,更新 max 

class Solution {
    public int lengthOfLongestSubstring(String s) {
        if(s.length()==0||s.length()==1){
            return s.length();
        }
        int max=1;
        for(int i=0;i<s.length()-1;i++){
            int len=1;
            for(int j=i+1;j<s.length();j++){
                //判斷是否有重複的字元
                if(s.indexOf(s.substring(j,j+1),i)==j){
                    ++len;
                }else{
                    break;
                }
            }
            //更新最長無重複子串長度
            max=len>max?len:max;
        }
        return max;
    }
}