zoukankan      html  css  js  c++  java
  • Leetcode 387 First Unique Character in a String

    Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.

    Examples:

    s = "leetcode"
    return 0.
    
    s = "loveleetcode",
    return 2.
    

     

    Note: You may assume the string contain only lowercase letters.(小写字母)

    首先这里假设只有小写字母,自然想到开一个大小为26的数组,保存每个字母出现的次数,然后在扫描一次字符串,判断出现次数是否为1,若是则直接返回小标,扫描结束后若还没有返回,说明没有字符只出现一次,返回1.

     1 int firstUniqChar(char* s) {
     2     int m[26] = {0}, len = strlen(s), i;
     3     for(i = 0; i < len; i++){
     4         m[s[i] - 'a']++;
     5     }
     6     for(i = 0; i < len; i++){
     7         if(m[s[i] - 'a'] == 1)
     8             return i;
     9     }
    10     return -1;
    11 }

    如果没有假设只包含小写字母,则可以用map

     1 class Solution {
     2 public:
     3     int firstUniqChar(string s) {
     4         int len = s.length(), i;
     5         map<char, int> map1;
     6         for(i = 0; i < len; i++){
     7             map1[s[i]]++;
     8         }
     9         for(i = 0; i < len; i++){
    10            if(map1[s[i]] == 1)
    11                 return i;
    12         }
    13         return -1;
    14     }
    15 };

     

  • 相关阅读:
    安装express 新建项目遇到问题汇总
    Java IO
    python3基础之“函数(1)”
    python3基础之“小练习(3)”
    python3基础之“小练习(2)”
    python3基础之“小练习(1)”
    linux命令
    1.环境安装部署汇总
    阶段13-直播~
    docker环境问题
  • 原文地址:https://www.cnblogs.com/qinduanyinghua/p/5812859.html
Copyright © 2011-2022 走看看