383. Ransom Note(C语言)

xiaoxiao2021-02-28  160

前面数组的字母可以在后面数组中找到,并且右边的每个字母只能用一次

我的实现思路是:

先遍历左边的数组,在右边的数组一个一个的找,找到一致的字母就把值设为0,跳出这层循环,开始进行左边数组下一个字母的寻找,左边数组遍历完之后,如果右边数组0的个数和左边数组的字母数一致,就证明右边的可以表示出左边的,如果不一致说明不能表示。

bool canConstruct(char* ransomNote, char* magazine) { int i=0; int j=0; int temp=0; int rlen = strlen(ransomNote), mlen = strlen(magazine); for(i=0;i<rlen;i++){ for(j=0;j<mlen;j++){ if(ransomNote[i]==magazine[j]){ magazine[j]=0; temp++; break; } } } if(temp==rlen){ return true; }else{ return false; } } 柏宁说我的会有很多重复的,如果找不到相应的字母就直接跳出来return false就好,我这样必须两个for循环都遍历完

转载请注明原文地址: https://www.6miu.com/read-62301.html

最新回复(0)