题目描述:
给一些字母(str1),判断是否能用这些字母拼出给定的单词(str2)。
示例1:
输入:str1=ardhpyp,str2=happy
输出:yes
示例2:
输入:str1=ardhypy,str2=happy
输出:no
思路:
可以用数组把两个字符串存起来,然后用str2的每个字符和str1的每个字符比较,用一个count来计相等字符的个数 ,当count等于了str2的长度,说明str1的字母可以拼出str2。
代码及详情如下:
int main() {
char str1[100];
scanf("%s", str1);//输入第一个字符串
char str2[100];
scanf("%s", str2);//输入第二个字符串
int count = 0;//计数器
for (int i = 0; i < strlen(str1); i++) {
for (int j = 0; j < strlen(str2); j++) {
//如果相等,就让str1里的这个字母变成空格,以防这个字母二次比较
if (str1[i] == str2[j]) {
//如果相等count就+1,最后比较count与str2的长度
count++;
str2[j] = ' ';
break;
}
}
}
//长count与长度相等,说明str1里面的字符可以拼成str2
if (count == strlen(str2))
printf("yes");
//否则不能
else
printf("no");
return 0;
}