PTA BASIC 1039.到底买不买

原题目链接


题解与感想

题目上说了输入的数字和字母范围为0-9]、[a-z]、[A-Z],均在ascii码范围内,故可以将读入的给定串字符用一容量为128的int类型数组计数,在读入目标串时,只需相应的将该数组对应位置做--操作,最后遍历该数组,若某一位的值小于0,则肯定不能买,相应的,小于0的位的和的相反数则为缺少的个数;与之相对,若每一位的值不小于0,则肯定能买,相应的,大于0的位的和则为多出来的个数。

源码

#include"stdio.h"

int main()
{
    int tell[128]={0};
    int more=0,less=0;
    char x;
    //输入欲判断的数组
    while((x=getchar())!='\n')
    {   tell[(int)x]++;
    }
    //输入目标数组
    while((x=getchar())!='\n')
    {   tell[(int)x]--;
    }
    //判断
    for(int i=0;i<128;i++)
    {   if(tell[i]>0)   {more+=tell[i];}
        else if(tell[i]<0) {less-=tell[i];}
    }
    //给出结论
    if(less){printf("No %d",less);}
    else {printf("Yes %d",more);}
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,467评论 0 5
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,270评论 0 4
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,417评论 0 2
  • 数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称...
    朱森阅读 4,007评论 2 13
  • 1. 找出数组中重复的数字 题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,...
    BookThief阅读 1,824评论 0 2