题解 | #在有序但是含有空的数组中查找字符串#

在有序但是含有空的数组中查找字符串

http://www.nowcoder.com/practice/92c172ef7c6d4ccc8f3103c3bc36cae2

//本题提供两种思路,一种方法借助哈希表,另一种使用二分查找
//先介绍使用哈希表的方法
#include<bits/stdc++.h>
using namespace std;
int main(){
    int n; 
    map<string, int> hashMap;//key的含义为字符串的值,value的含义为该字符串第一次出现的位置
    cin>>n;
    string str;
    cin>>str;
    string arr[n];
    for(int i=0;i<n;i++){
        string s;
        cin>>s;
        if(hashMap.find(s)==hashMap.end()){//说明该字符串是第一次出现,记录下来
            hashMap[s]=i;
        }
    }
    if(hashMap.find(str)==hashMap.end()){//说明没有这个字符串
        cout<<-1<<endl;
        return 0;
    }
    cout<<hashMap[str]<<endl;
    return 0;
}
全部评论

相关推荐

迟缓的斜杠青年巴比Q了:简历被投过的公司卖出去了,我前两天遇到过更离谱的,打电话来问我有没有意向报班学Java学习,服了,还拿我学校一个学长在他们那报班学了之后干了华为OD当招牌
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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