题解 | #找位置#

使用哈希表unordered_map
要点:
1.map.find(str[i])==map.end()判断是否存在
2.unordered_map<char,item> map复杂型hash表操作
#include<iostream>
#include<string>
#include<string>
#include<algorithm>
#include<cstdio>
#include<unordered_map>
#include<vector>
using namespace std;
typedef struct item{
    int count;
    vector<int> index;
};
int main(){
    string str;
    while(cin>>str){
        unordered_map<char,item> map;
        for(int i=0;i<str.length();i++){
            if(map.find(str[i])==map.end()){
                item t;
                t.count =1;
                t.index.push_back(i);
                map.insert({str[i],t});
            }else{
                map[str[i]].count+=1;
                map[str[i]].index.push_back(i);
                str[i]='#';
            }
        }
        for(int i=0;i<str.length();i++){
            if(map[str[i]].count>1){
                for(int k = 0;k<map[str[i]].index.size();k++){
                    if(k<map[str[i]].index.size()-1)
                    cout<<str[i]<<":"<<map[str[i]].index[k]<<",";
                    else{
                        cout<<str[i]<<":"<<map[str[i]].index[k]<<"\n";
                    }
                }
            }
        }
        
    }
    
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
10-09 16:39
已编辑
英俊的靓仔offer...:我感觉吧第二个寻迹小车的项目有点配不上你的学历了,写上去扣分了都可能对你来说,好歹是211硕士嘛,写在我这种二本混子的简历上还说得过去,个人观点哦,能再有个好点的项目应该会好很多,或者干脆不写第二个换个啥实习经历?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务