曾经在南京一家公司遇到的笔试题,话不多说直接上代码:
/**
* java如何高效的实现一个字符串中第一次出现重复字符的位置
*/
public class FindFirstDemo {
public static void main(String[] args) {
System.out.println(getFirstIndex("abcdscc"));//5
}
public static int getFirstIndex(String str){
String[] strArray = str.split("");
for (int i = 0; i <strArray.length ; i++) {
int num=0;
int index=0;
//对于每一个值,都需要从前开始遍历
while (index<=i){
if(strArray[index].equals(strArray[i])){
num++;
}
index++;
}
if(num>1){
//说明此时i索引处是第一次重复了
return i;
}
}
//没找到就返回-1
return -1;
}
}