沙白猿 2023-11-07 16:38 采纳率: 44.4%
浏览 7
已结题

(Java)第一个例子可是实现,但第二个例子不会实现

重复字符
给定一个字符串(全是小写字母,长度小于500),找到它的第一个不重复的字符,并输出这个字符,
如果不存在,则返回-1;
示例1:
输入:jmcoding
输出:j
示例2:输入:(重复三个ha)
解释:不给我写这个例子出来
输出:-1
解释:无重复字符

  • 写回答

2条回答 默认 最新

  • 无序繁星 2023-11-07 16:53
    关注

    用数组存储字符次数,遍历找到第一个只出现一次的

    class Solution{
        public int findFirstChar(String s){
            int[] chs = new int[26];
            for (int i=0; i < s.length(); i++) chs[s.charAt(i) - 'a'] += 1;
            for (int i=0; i < s.length(); i++){
                if (chs[s.charAt(i) - 'a'] == 1) return i;
            }
            return -1;
        }
        
        public static void main(String[] args){
            Scanner scanner = new Scanner(System.in);
            String str = scanner.next(); 
            s = new Solution();
            int idx = s.findFirstChar(str);
            if (idx == -1) System.out.println(idx);
            else System.out.println(str.charAt(idx));
            scanner.close();
        }
    }
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月9日
  • 创建了问题 11月7日