无重复字符的最长字串编程问题

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度.

如abcdd,最长无重复字串为abc,长度为3

public class NoRepeatString {
//给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String s;
		Scanner sc = new Scanner(System.in);
		System.out.println("输入字符串");
		s = sc.nextLine();
//		System.out.println(s);
		method(s);
	}

	private static void method(String s) {
		// TODO Auto-generated method stub
		int ans = 0;
		for(int i=0;i<s.length();i++) {
			for(int j=i+1;j<=s.length();j++) {
					if(allUnique(s,i,j)) ans = Math.max(ans,j-i);
				}
			}
		System.out.println(ans);
		}

	private static boolean allUnique(String s, int start, int end) {
		// TODO Auto-generated method stub
		List<Character> list = new ArrayList();
		for(int i=start;i<end;i++) {
			char r=s.charAt(i);
			if(list.contains(r)) {
				return false;
			}
			list.add(r);
		}
		return true;
	}
}

猜你喜欢

转载自blog.csdn.net/qq_29660957/article/details/89477899
今日推荐