zoukankan      html  css  js  c++  java
  • 第一个只出现一次的字符(剑指offer)

    在一个字符串(1<=字符串长度<=10000,全部由大小写字母组成)中找到第一个只出现一次的字符,并返回它的位置

     1 #include<iostream>
     2 #include<vector>
     3 #include<map>
     4 #include<string>
     5 #include<unordered_map>
     6 using namespace std;
     7 
     8 int main()
     9 {
    10     unordered_map<char, int> m;
    11     string str="";
    12     cin>>str;
    13     int len = str.size();
    14     //cout << len << endl;
    15     unordered_map<char, int>::iterator ite;
    16     for (int i = 0; i < len; i++)
    17     {
    18         m.insert(pair<char, int>(str[i], 0));
    19     }
    20     /*for (ite = m.begin(); ite != m.end(); ++ite)
    21     {
    22         cout << ite->first << " " << ite->second << endl;
    23     }*/
    24     for (int i = 0; i < len; i++)
    25     {
    26         m[str[i]]++;
    27     }
    28     //for (ite = m.begin(); ite != m.end(); ++ite)
    29     //{
    30     //    cout << ite->first << " " << ite->second << endl;
    31     //}
    32     char c;
    33     for (int i = 0; i <m.size(); i++)
    34     {
    35         if (m[str[i]] == 1)
    36             c = str[i];
    37     }
    38 //    cout << c << endl;
    39     int x;
    40     for (int i = 0; i < len; i++)
    41     {
    42         if (c == str[i])
    43             x = i;
    44     }
    45     cout << x+1 << endl;
    46     system("pause");
    47     return 0;
    48 }

    上面的是我写的,自己的ide可以过去,没有提交,看到一个算法,思路清晰,也比较简单,放在下面。

     1 #include<iostream>
     2 #include<vector>
     3 #include<map>
     4 #include<string>
     5 #include<unordered_map>
     6 using namespace std;
     7 
     8 int main()
     9 {
    10     string str;
    11     cin >> str;
    12     int x;
    13     for (int i = 0; i < str.size(); i++)
    14     {
    15         if (str.find(str[i]) == str.rfind(str[i]))
    16         {
    17             x = i;
    18             break;
    19         }
    20     }
    21     cout << x + 1 << endl;
    22     system("pause");
    23     return 0;
    24 }
  • 相关阅读:
    90个常用词根,30个前缀30个后缀
    七、图形与图像处理(1)
    解决Android SDK下载和更新失败的方法(Win系统) 和离线安装
    IT技术网站汇总
    css padding和margin的百分比
    div无法跟随内容的增加而拉伸
    html元素被隐藏在后面
    cron 执行php文件
    cron 编辑器修改
    Eclipse PHP 代码无法自动提示函数
  • 原文地址:https://www.cnblogs.com/wujufengyun/p/6927786.html
Copyright © 2011-2022 走看看