java解决“第一个只出现一次的字符”最菜的方法

第一个只出现一次的字符

http://www.nowcoder.com/questionTerminal/1c82e8cf713b4bbeb2a5b31cf5b0417c

我是小白,当然只能用小白的方法解题了,简单粗暴。
思路:用一个count来记录字符出现的次数,先将字符串转化成字符数组,第一层循环拿第i个字符,将第一层拿到的第i个字符分别和再次循环这个数组的每一个字符进行对比,如果发现有相同的字符,count++,break退出第二层for,继续第一层for,直到找到第一个没有重复的字符,打印i,即位置。

public class Solution {
    public int FirstNotRepeatingChar(String str) {
        if(str == null || str == ""){
            return -1;
        }
        char ss[] = str.toCharArray();
        char tmp;
        for(int i = 0; i < ss.length - 1; i++){
            tmp = ss[i];
            int count = 1;
            for(int j = 0; j < ss.length; j++){
                if(i != j){
                    if(tmp == ss[j]){
                        count++;
                        break;
                    }
                }
            }
            if(count == 1){
                return i;
            }
        }
        return -1;
    }
}
全部评论
这个如果前面元素全部都同,最后一元素不同是不可以的,你用的两个for,第一个for用的是length - 1;没有遍历到最后一个
点赞 回复 分享
发布于 2021-09-06 12:21

相关推荐

双非一本失业第二年:《机器视觉垃圾分类》
点赞 评论 收藏
分享
9 1 评论
分享
牛客网
牛客企业服务