当前位置:   article > 正文

剑指offer面试题50(java版):第一个只出现一次的字符_剑指offer java 50

剑指offer java 50

welcome to my blog

剑指offer面试题50(java版):第一个只出现一次的字符

题目描述

在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).

思路

  • 使用哈希表实现, 扫描两次字符串, 第一次统计次数, 第二次找到第一个出现次数为1的字符串

笔记

  • 为什么要用LinkedHashMap不直接用HashMap?你也没有用到LinkedHashMap有序的特性啊
  • 可以使用str.charAt(), 不用讲str转成char[]
class Solution {
   
    public char firstUniqChar(String s) {
   
        int n = s.length();
        if(n==0){
   
            return ' ';
        }
        int[] count = new int[26];
        for(char ch : s.toCharArray()){
   
            int i = ch - 'a';
            count[i]++;
        }
        for(char ch : s.toCharArray()){
   
            int i = ch - 'a';
            if(count[i]==1){
   
                return ch;
            
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/212264
推荐阅读
相关标签
  

闽ICP备14008679号