问题陈述:给定一个字符串,找到其中的第一个非重复字符并返回其索引。如果不存在,则返回-1。
示例: s =“ leetcode” 返回0。
s =“ loveleetcode”, 返回2。
我的解决方案:
class Solution387{
public int firstUniqChar(String s) {
int count=0;
if(s == null || s.length() < 1) {
return -1;
}
else if (s.length() == 1) {
return 0;
}
for(Character ch:s.toCharArray()){
if(s.indexOf(ch)==s.lastIndexOf(ch)){
count=s.indexOf(ch);
break;
}
}
return count;
}
}
对于这两个示例,我的解决方案效果很好。但是第二部分如果不存在,返回-1 ,我不明白如何实现这一部分。
说,我有一个测试用例:输入:“ cc”我的输出:0预期输出:-1
如何实现第二部分?
答案 0 :(得分:1)
很简单,您可以将count
初始化为-1,因此,如果没有找到任何内容,并且返回count
,您将返回-1
:
public int firstUniqChar(String s) {
int count=-1;
if(s == null || s.length() < 1) {
return -1;
}
else if (s.length() == 1) {
return 0;
}
for(Character ch:s.toCharArray()){
if(s.indexOf(ch)==s.lastIndexOf(ch)){
count=s.indexOf(ch);
break;
}
}
//If no unique character is found, count will still be -1
return count;
}
然后运行时:
System.out.println(firstUniqChar("aabbcc"));
输出:
-1
答案 1 :(得分:0)
localhost