gpt4 book ai didi

c - 编写一个函数,如果传递给它的 2 个字符串使得第一个字符串的所有字符都唯一地出现在第二个字符串中,则该函数返回 true

转载 作者:太空宇宙 更新时间:2023-11-04 03:06:02 24 4
gpt4 key购买 nike

C 中的高效和 O(n) 代码?我知道 O(n*n) 的解决方案

stringCompare(str1, str2){
int freq1[100] = {0}, i;
int freq2[100] = {0};

for(i=0; i<=strlen(str1); i++){
freq1[str1[i]]+ = 1;
}

for(i=0; i<=strlen(str2); i++)

{
freq2[str2[i]]+ = 1;
}

for(i=0;i<26;i++){
if(freq1[i]!=freq2[i])
return 0;
return 1;

}

最佳答案

我稍微修改了 MAK 的伪代码,因此它只使用一个频率计数数组。最终频率数组中的正值表示 s1 中的字符不在 s2 中。负值表示 s2 中有额外字符。

function same(s1,s2):
freq=array of zeros

for i=0 to length of s1:
freq[s1[i]]+=1

for i=0 to length of s2:
freq[s2[i]]-=1

for i=0 to alphabet_size:
if not freq[i]=0
return "no"
return "yes"

关于c - 编写一个函数,如果传递给它的 2 个字符串使得第一个字符串的所有字符都唯一地出现在第二个字符串中,则该函数返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5092665/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com