题目:给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
只有一个当s="";时的实验用例错误,但是我在eclipse中的运行结果时0呀,而在leetcode提交时结果却是1。
看了看推荐的代码,发现我的代码好蠢但也是我一点一点想出来的~~就想着用自己的吧。
public static int lengthOfLongestSubstring(String s) {
if(s == null || s == "")
return 0;
char[] ch = s.toCharArray();
int temp = 1;
int number = 1;
for(int i = 0; i < ch.length; i++) {
int flag = 1;
for(int j = i + 1; j < ch.length ; j++ ) {
for(int k = i; k < j; k++) {
if(ch[k] == ch[j] ) {
flag = 0;
break;
}
}
if(flag == 0) {
break;
}else {
temp = j - i + 1;
if(temp > number) {
number = temp;
}
}
}
}
return number;
}
这是在eclipse中的运行截图呀
判断s的长度是否为0
将判断为空字符串的条件改为求s的长度为0
s == "" 需要修改为 s.equals("")
你在你本地调用返回0原因是,s == "" 这个条件成立了,成立的原因是字符串常量池的原因
如有帮助,请采纳!