c#语言 如何快速的判断两个string中是否含有相同的字符?
如何快速的判断两个string中是否含有相同的字符?可以用两个for循环,时间复杂度O(n²),太慢。借助逻辑运算,用二进制表示两个字符串是否含有某个字符,然后进行并操作:做法1:只能判断含有的字符是
如何快速的判断两个string中是否含有相同的字符?
可以用两个for循环,时间复杂度O(n²),太慢。借助逻辑运算,用二进制表示两个字符串是否含有某个字符,然后进行并操作:做法1:只能判断含有的字符是否相同,不能判断出现次数相同。strings1,s2vector<int>mask(2)for(charc:s1)mask[0]|=1<<c-"a"for(charc:s2)mask[1]|=1<<c-"a"returnmask[0]&mask[1]做法2:能判断每个字符出现的次数都要确保一样:vector<int>count(26,0)for(inti=0i<s1size()i ){count[s1[i]-"a"] count[s2[i]-"a"]--}for(inti=0i<26i )if(count[i]!=0)returnfalsereturntrue