Note
- 散列
- 简单题
Code
#include<bits/stdc++.h>
using namespace std;
int main(){
#ifndef ONLINE_JUDGE
freopen("data.txt","r",stdin);
#endif
int hash[200]={0};
string s1,s2;
cin>>s1>>s2;
int len1=s1.size(),len2=s2.size();
int count_no=0;
for(int i=0;i<len1;i++)
hash[s1[i]]++;
for(int i=0;i<len2;i++){
if(hash[s2[i]]<1) count_no++;
hash[s2[i]]--;
}
if(count_no==0) printf("Yes %d",s1.size()-s2.size());
else printf("No %d",count_no);
return 0;
}
这篇博客探讨了一个简单的编程问题,通过散列数据结构来检查一个字符串是否为另一个字符串的子序列。代码示例中,输入两个字符串并计算它们的散列值,然后比较第二个字符串的每个字符在散列中是否存在,从而确定子序列关系。如果所有字符都在散列中且计数为零,则输出'Yes'和两个字符串长度之差;否则,输出'No'和未找到的字符数。
618

被折叠的 条评论
为什么被折叠?



