找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1384|回复: 0
收起左侧

[米群网刷题小分队] [PAT-B] 1092. To Buy or Not to Buy

[复制链接]
发表于 5-3-2015 03:28 PM | 显示全部楼层 |阅读模式

亲!马上注册或者登录会查看更多内容!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
1092 To Buy or Not to Buy
这个比top那个1004简单多了——就是给两个串问第一个串是否包含了第二个串的全部字符,如果是,多余出来多少个(其实就是长度差),如果不是,少几个…… 直接算就行。

  1. #include <cstdio>
  2. #include <cstring>
  3. #include <string>
  4. #include <cctype>

  5. using namespace std;


  6. char s[1003];
  7. int have[62];

  8. inline int give(char c) {
  9.         if (isdigit(c)) {
  10.                 return c - '0';
  11.         }
  12.         if (isupper(c)) {
  13.                 return c - 'A' + 10;
  14.         }
  15.         return c - 'a' + 36;
  16. }


  17. void run() {
  18.     scanf("%s",s);
  19.     for (int i = 0; s【i】; ++i) {
  20.         --have[give(s【i】)];
  21.     }
  22.     int extra = 0, need = 0;
  23.     for (int i = 0; i < 62; ++i) {
  24.         if (have【i】 < 0) {
  25.             need -= have【i】;
  26.         }
  27.         else {
  28.             extra += have【i】;
  29.         }
  30.     }
  31.     if (need) {
  32.         printf("No %d\n", need);
  33.     }
  34.     else {
  35.         printf("Yes %d\n", extra);
  36.     }
  37. }

  38. int main() {
  39.         scanf("%s",s);
  40.         for (int i = 0; s【i】; ++i) {
  41.                 ++have[give(s【i】)];
  42.         }
  43.     run();
  44.     return 0;
  45. }
  46.        
  47.        
复制代码


本帖被以下淘专辑推荐:

我们始终相信IT会持续改造甚至创新传统行业,我们始终全面看好咱们的CS专业!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表