zoukankan      html  css  js  c++  java
  • 剑指 Offer 50. 第一个只出现一次的字符

    在这里插入图片描述

    解法

     直观解法是遍历每个字符,将当前字符和其余字符比较判断有无重复。
    这种解法时间复杂度为 O ( n 2 ) O(n^2) O(n2)
     为了更快的解决问题可以使用哈希表,键为字符,值为对应的次数。char为8位所以有256种可能,可以定义一个数组下标为字符对应的ASCII码,元素为出现的次数。遍历两次字符串,第一次遍历记录次数,第二次遍历找到第一次出现次数为1的字符返回。

    class Solution {
        public char firstUniqChar(String s) {
            if(s == null || s.length() == 0)
                return ' ';
            int[] myHash = new int[256];
            for(int i = 0; i < s.length(); i++) {
                myHash[s.charAt(i)]++;
            }
            for(int i = 0; i < s.length(); i++) {
                if(myHash[s.charAt(i)] == 1)
                    return s.charAt(i);
            }
            return ' ';
        }
    }
    
  • 相关阅读:
    Android测试入门篇
    SQL的基本知识
    正则表达式
    ES5语法
    vscode
    继承小结
    工作遇到的问题
    后台程序员的HTTP缓存
    xhr下载图片/服务器向客户端推送消息
    HTTP2.0
  • 原文地址:https://www.cnblogs.com/PythonFCG/p/13859940.html
Copyright © 2011-2022 走看看