数值比较完全可以采用harsh表的方法

来源:互联网 发布:海外华人嫉妒大陆 知乎 编辑:程序博客网 时间:2024/05/10 05:52

如果我们要比较两个数组是否包含的关系,过去我们一味的遍历每个数组的元素,时间复杂度大的。但是最近学数据结构的时候发现,harsh可以代替这也功能,看到网友的编程也是用这种方法的,今天试了试,哇塞,果真不错的。但是要领会其思想。好了 迫不及待了 我们来看代码啦:

#include <iostream>#include <string>using namespace std;int main(){string str1="ABCDFTYUGHJV";string str2="DHUIO";int harsh[26]={0};int num=0;for(int j=0; j<=str2.length()-1; j++){  int index=str2[j]-'A';if(harsh[index]==0){harsh[index]=1;num++;}}for(int k=0; k<=str1.length()-1; k++){int index=str2[k]-'A';if(harsh[index]==1){harsh[index]=0;num--;if(num==0)break;}}if(num==0)cout<<"true"<<endl;else cout<<"false"<<endl;return 0;}


 

代码来自网友july的博客。
原创粉丝点击