LeetCode-3. Longest Substring Without Repeating Characters

来源:互联网 发布:数据人生txt全集下载 编辑:程序博客网 时间:2024/06/06 12:31
1.问题描述:

Given a string, find the length of the longest substring without repeating characters.

Examples:

Given "abcabcbb", the answer is "abc", which the length is 3.

Given "bbbbb", the answer is "b", with the length of 1.

Given "pwwkew", the answer is "wke", with the length of 3. Note that the answer must be asubstring, "pwke" is a subsequence and not a substring.

2.算法思路

其实题目求字符串中不包含重复字符的最大字串的长度,其实思路也不难。创建一个临时字符串temString和长度变量len,标志位I每移动一个字符,判断temString中是否含有当前字符,如果没有,temString中加入此字符,并判断当前len的大小与temString的长度大小;如果有,也将该字符加入到temString中,同时将temString基于第一个该字符的位置分割,将后半段重新赋予temString.

3.JAVA代码

public class Solution {    public int lengthOfLongestSubstring(String s) {     int len=0;        int i=0;        String temString="";        while(i<s.length()){            int index=temString.indexOf(String.valueOf(s.charAt(i)));            if(index>-1){            temString+=String.valueOf(s.charAt(i));                 String halfleft=temString.substring(0,index+1);                temString=temString.substring(index+1,temString.length());                i++;            }else{            temString+=String.valueOf(s.charAt(i));                if(temString.length()>len){                    len=temString.length();                }                i++;            }        }        return temString.length()>len?temString.length():len;    }}


0 0