码迷,mamicode.com
首页 > 其他好文 > 详细

1092 To Buy or Not to Buy

时间:2018-08-29 01:12:36      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:style   strlen   完全   思路   iss   等于   字符   freopen   pat   

题意:给出两个字符串s1和s2(长度不超过1000),问s1是否包含s2中的所有字符,若包含,则输出Yes,并输出s1中多余的字符个数;若不完全包含,则输出No,并输出缺少的个数。

思路:定义数组int cnt[128],遍历字符串s1,记录各个字符出现的次数,cnt[i]表示i对应的字符出现的次数;然后遍历字符串s2,每访问一个字符,就把对应的cnt[i]减1,当遍历完了之后,若cnt[]均大于等于0,则说明s1含有s2的所有字符,输出Yes,以及strlen(s1)-strlen(s2);否则,说明s1不完全包含s2的所有字符,cnt[]中小于0的绝对值即为缺少的字符个数。

代码:

#include <cstdio>
#include <cstring>

int main()
{
    //freopen("pat.txt","r",stdin);
    char str1[1005],str2[1005];
    scanf("%s",str1);
    scanf("%s",str2);
    int cnt[128]={0};
    int len1=strlen(str1);
    for(int i=0;i<len1;i++) cnt[str1[i]]++;
    int len2=strlen(str2);
    int miss=0;
    for(int i=0;i<len2;i++){
        cnt[str2[i]]--;
        if(cnt[str2[i]]<0) miss++;
    }
    if(miss>0) printf("No %d",miss);
    else printf("Yes %d",len1-len2);
    return 0;
}

 

1092 To Buy or Not to Buy

标签:style   strlen   完全   思路   iss   等于   字符   freopen   pat   

原文地址:https://www.cnblogs.com/kkmjy/p/9551583.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!