Digits Are Not Just Characters

题意:

比较大小,如果比目标字符串大输出“+”,相等也输出“+”,小则输出“-”:
比较规则:
字母大于数字
两个字母比较按照ASCII码
当被解释为十进制数时,两个数字项按其值排序。

Number items come before letter items.
Two letter items are ordered by their ASCII codes.
Two number items are ordered by their values when interpreted as decimal numbers.

题解:

如果用默认比较,X52Y 大于X222,因为计算机会先比较X,X一样再比较5和2,5>2,所以前者大于后者,但实际上,按照题目规则,X比完后,再比较52和222,也就是一串数字要当做一个整体来处理,
而且数字遇上字母,字母大于数字,也就是X52Y大于32
我是这么想的,将字母和数字都转化成对应的数字,
将连续的数字转化成十进制形式,然后存在数组里;字母也存在数组里,这样之后直接比较就可以
但是如何处理数字和字母的比较呢?数字“10000”转化后大于“a”,我们可以在字母转化时加入一个绝对大值,使得数字远小于字母,但是字母之间可以比较
file[k1]=maxn+a[i]
maxn=1e10
详细看代码把

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll maxn=1e10;const int maxx=130;
ll file[maxx];
ll file2[maxx];
int n;
int main()
{ios::sync_with_stdio(false);cin>>n;string a;cin>>a;int k1=1;for(int i=0; i<a.length(); i++){if(a[i]>'9') file[k1]=maxn+a[i],k1++;//如果是字符串else {int j=i;file[k1]=(a[j]-'0');for(j=i+1; a[j]<='9'&&j<a.length(); j++)//存下数字 file[k1]=file[k1]*10+(a[j]-'0');k1++;i=j-1;}}while(n--){int k2=1;int f=1;memset(file2,0,sizeof(file2));string b;cin>>b;for(int i=0; i<b.length(); i++){if(b[i]>'9') file2[k2]=maxn+b[i],k2++;else {int j=i;file2[k2]=(b[j]-'0');for(j=i+1; b[j]<='9'&&j<b.length(); j++){file2[k2]=file2[k2]*10+(b[j]-'0');}k2++;i=j-1;}}for(int i=1;i<k1&&i<k2;i++)//比较大小 {if(file[i]<file2[i]) {    f=0;cout<<"+"<<endl;break;}if(file[i]>file2[i])          {f=0;cout<<"-"<<endl;break;}if(file[i]==file2[i]) continue;}if(f==1&&k1==k2) cout<<"+"<<endl;//两者相等 if(f==1&&k1>k2) cout<<"-"<<endl;if(f==1&&k1<k2) cout<<"+"<<endl;}return 0;
}

2020牛客国庆集训派对day4 Digits Are Not Just Characters相关推荐

  1. 2020牛客国庆集训派对day4 Arithmetic Progressions

    Arithmetic Progressions 链接:https://ac.nowcoder.com/acm/contest/7831/B 来源:牛客网 题目描述 An arithmetic prog ...

  2. 2020牛客国庆集训派对day4 Jokewithpermutation

    Jokewithpermutation 题目描述 Joey had saved a permutation of integers from 1 to n in a text file. All th ...

  3. 2020牛客国庆集训派对day4 What Goes Up Must Come Down

    What Goes Up Must Come Down 题意: 我们规定一个序列合理:当一个序列左部分是非降序列,右部分是非升序列(左右部分可为0,也就是整体可以为非降序列,非升序列) 题解: 树状数 ...

  4. 2020牛客国庆集训派对day4 Emergency Evacuation

    Emergency Evacuation 题意: 有n个人在不同的位置上,在最后面有一个出口exit,所有人都要逃离出去(走出出口),且每个格子最多容纳一个人,当有人挡在前面时,后面的人必须停留,所有 ...

  5. 2020牛客国庆集训派对day2 补题J

    2020牛客国庆集训派对day2 补题J:VIRUS OUTBREAK 题目描述 The State Veterinary Services Department recently reported ...

  6. 2020牛客国庆集训派对day3 I.Rooted Tree(哈代-拉马努金拆分数列)

    2020牛客国庆集训派对day3 I.Rooted Tree(哈代-拉马努金拆分数列) 题目 https://ac.nowcoder.com/acm/contest/7830/I 题意 给你n个点,问 ...

  7. 2020牛客国庆集训派对day2 H-STROOP EFFECT(英语题)

    2020牛客国庆集训派对day2 H-STROOP EFFECT(英语题) 题目 https://ac.nowcoder.com/acm/contest/7818/H 题意 这题目真的太难读懂了,赛后 ...

  8. 2020牛客国庆集训派对day8 G-Shuffle Cards(扩展STL容器,rope可持久化平衡树)

    2020牛客国庆集训派对day8 G-Shuffle Cards(扩展STL容器,rope可持久化平衡树) 题目 https://ac.nowcoder.com/acm/contest/7865/G ...

  9. 2020牛客国庆集训派对day1 A.ABB

    2020牛客国庆集训派对day1 A.ABB 题目链接 题目描述 Fernando was hired by the University of Waterloo to finish a develo ...

最新文章

  1. 【Codeforces】1080C Masha and two friends (棋盘染色)
  2. 2020-12-28-bitset函数
  3. 12.Azure应用程序网关(下)
  4. JConsole监控远程Tomcat服务器
  5. Node_MongoDB
  6. a[1]和1[a]——浅谈数组下标运算符
  7. 开头th_是什么文件_Python文件读写最详细的讲解
  8. Webpack 常用命令总结以及常用打包压缩方法
  9. 蓝叠 正在检查服务器最新,Windows update一直停留在正在检查更新
  10. Javascript----input事件实现动态监听textarea内容变化
  11. LG新能源新设首席数字官 首任是英伟达前数据科学家
  12. python对象特性教学_Python三个面向对象特性多态性的实用解释,实践,解读,丨,三大,特征,之...
  13. H.264标准(一)MP4封装格式详解
  14. 身份证验证Java代码
  15. 用matlab的毕业设计,毕业设计课题: 用 MATLAB.ppt
  16. 一元二次方程求解以及表达式
  17. id Software公司介绍
  18. 模糊控制(二)模糊控制——模糊推理
  19. 网页如何与小程序交互通信
  20. 游戏里的角色都什么格式图片_Bloom是什么

热门文章

  1. 11部高分学科纪录片,助力孩子涨姿势拓视野~
  2. 被学校辞退、拒绝FB后:语音识别大牛Povey确认兼职北京初创公司,称主业还选中国...
  3. 比起掉头发,我更怕掉队
  4. 一些奇葩的元素节点object,video
  5. java日期加减秒_Java日期——年、月、日、时、分、秒、周加减计算
  6. qtp服务器怎么获得日志信息,QTP自动化测试-打开运行报告
  7. html超文本链接本页面,从HTML语言到网上家园 第三章 超文本链接(1)-网页设计,HTML/CSS...
  8. java 子类 复制_关于java子类继承来的属性与方法究竟是完全复制还是共用使用...
  9. mysql 常用权限_MySQL的权限有哪些
  10. linux服务器管理公司用户,在Linux服务器Jenkins中管理用户和角色的方法