其他分享
首页 > 其他分享> > 剑指offer第三十四天

剑指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