-
知识点 字符串,循环,链表,队列,栈,查找,搜索,排序,树,图,数组,函数,指针,枚举,位运算,结构体,联合体,文件操作,递归 运行时间限制 0M 内存限制 0 输入 输入两手牌,两手牌之间用"-"连接,每手牌的每张牌以空格分隔,"-"两边没有空格,如 4 4 4 4-joker JOKER。
输出 输出两手牌中较大的那手,不含连接符,扑克牌顺序不变,仍以空格隔开;如果不存在比较关系则输出ERROR。
样例输入 4 4 4 4-joker JOKER 样例输出 joker JOKER
- #include <iostream>
- #include <vector>
- #include <string>
- using namespace std;
- vector<int> helper(string s)//这个地方用了vector容器入栈的方式比数组要节省很多代码
- {
- vector<int> v;
- for(int i=0;i<s.size();i++){
- if(s[i]=='1'){
- v.push_back(10);
- i++;
- }
- else if(s[i]=='J') v.push_back(11);
- else if(s[i]=='Q') v.push_back(12);
- else if(s[i]=='K') v.push_back(13);
- else if(s[i]=='A') v.push_back(14);
- else if(s[i]=='2') v.push_back(15);
- else if(s[i]==' ') continue;
- else v.push_back(s[i]-'0');
- }
- return v;
- }
- int main(){
- string s;
- getline(cin, s);
- unsigned int k=s.find('-');
- int n=s.size();
- string s1=s.substr(0,k);
- string s2=s.substr(k+1);
- if(s1=="joker JOKER"||s2=="joker JOKER"){
- cout<<"joker JOKER"<<endl;
- return 0;
- }
- vector<int> v1=helper(s1);
- vector<int> v2=helper(s2);
- if(v1.size()==4&&v2.size()==4){
- if(v1[0]<v2[0]) cout<<s2<<endl;
- else cout<<s1<<endl;
- return 0;
- }
- if(v1.size()==4) cout<<s1<<endl;
- else if(v2.size()==4) cout<<s2<<endl;
- else if(v1.size()!=v2.size()) cout<<"ERROR"<<endl;
- else if(v1[0]<v2[0]) cout<<s2<<endl;
- else if(v1[0]>v2[0]) cout<<s1<<endl;
- else{
- cout<<"ERROR"<<endl;
- }
- return 0;
- }
扑克牌大小
最新推荐文章于 2022-07-19 08:21:59 发布