您的位置:首页 > 其它

蓝桥杯 算法提高 12-2扑克排序

2017-12-25 10:15 295 查看
一道看逻辑的string题

注意扑克牌中数字的大小和花色的排序

ac代码如下

#include <iostream>
#include <string>
using namespace std;
char s[5];
char c[5];
int j=0;

int main()
{
string a;
cin>>a;
for(int i=0;i<a.length();i+=2){
s[j]=a[i];
c[j]=a[i+1];
j++;
}
for(int i=0;i<4;i++){
int k=i;
for(int j=i+1;j<5;j++){
if(s[j]!='A'&&s[k]!='A'){
if(s[j]<s[k])k=j;
}else if(s[k]=='A'){
char d;
d=s[j];
s[j]=s[k];
s[k]=d;
d=c[j];
c[j]=c[k];
c[k]=d;
}
}
if(k!=i){
char d;
d=s[i];
s[i]=s[k];
s[k]=d;
d=c[i];
c[i]=c[k];
c[k]=d;
}
}
for(int i=0;i<4;i++){
int k=i;
for(int j=i+1;j<5;j++){
if(s[k]==s[j]){
if(c[k]!='d'&&c[j]!='d'){
if(c[k]>c[j])k=j;
}else{
if(c[j]=='d'){
char d;
d=c[k];
c[k]=c[j];
c[j]=d;
}
}
}
}
if(k!=i){
char d;
d=c[i];
c[i]=c[k];
c[k]=d;
}
}
for(int i=0;i<5;i++){
cout<<s[i]<<c[i]<<" ";
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: