题解 | #字符串字符匹配#

字符串字符匹配

https://www.nowcoder.com/practice/22fdeb9610ef426f9505e3ab60164c93

#include <iostream>
#include <unordered_set>
#include <string>
using namespace std;
//判断一些数据是否都在一个集合中出现,最有效率的办法就是用哈希法。字符串均由小写字母组成,因此哈希表大小26即可。下标表示字母,值表示出现频率。用数组记录长字符串中出现字符的频率.遍历短字符串,如果对应的下标数值>0说明长字符串中出现过,否则没有出现过
bool isExist(string s1, string s2) {
    int sc[26] = {0};//0--a  1--b  ...
    int i=0;
    if (s1.size() == 0 || s2.size() == 0) {
        return false;
    } 
        for (i = 0; i < s2.size(); i++) {
            sc[s2[i] - 'a']++; //比如如果s2[i]='b',那么sc[2]++;
        }
        for (i = 0; i < s1.size(); i++) {
            if (sc[s1[i] - 'a'] == 0) {
                return false;
            }
        }
        return true;
    
}
int main() {
    string s1, s2;
    
    getline(cin, s1);
    getline(cin, s2);
bool a=isExist(s1, s2);
cout<<boolalpha<<a<<endl;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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