剑指offer第三十四天
作者:互联网
题目描述
在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)
解题思路
通过字符串的切割,判断前面一部分字符串和后面一部分字符串是否包含当前的字符。例如字符串为“google”,遍历字符串,第一个字符为'g',第一次切割,后面的字符串为"oogle",包含g,排除掉,第二次切割为“g”和"ogle",包含第二个字符'o'排除,以此类推。
public class Solution {
public static int FirstNotRepeatingChar(String str) {
if (str.length() <= 10000 && str.length() > 0) {
int i;
for (i = 0; i < str.length() - 1; i++) {
String charAt = str.charAt(i) + "";
String subString1 = str.substring(0,i);// 以当前字符为分界线,前面一部分字符串
String substring2 = str.substring(i + 1, str.length());// 以当前字符为分界线后面一部分字符串
if (!substring2.contains(charAt) && !subString1.contains(charAt) ) {// 如果前后都不包含该字符
break; //终止循环
}
}
return i;// 返回当前字符所在位置
} else {
return -1;
}
}
}
标签:字符,String,offer,第三十四,length,str,字符串,charAt 来源: https://blog.csdn.net/weixin_43780699/article/details/88200044