3.19
题外话
可算能做出来一道题了qaq
题意
让你把一个字符串排成字典序最小的形式,移动方式是奇数和偶数相邻,这两个数可以无限以动
思路
用两个数组,分别存奇偶,然后处理一下就好,挺简单的(代码写的挺丑的。。)
代码
///*
//正在播放《フリージア》
//1:21 ━━━━━━●───── 5:35
// ? ? ?? ? ?
//```````'`...```````''`````````````'````````````````'`.`''
//```````''..`';;'```''```'''''''''''''`````````````````'':
//.````''''':;;!!:````'````'''''''''''``````````````````'':
//``''''''':;;;;;'```'``````''```````````____________```'':
//`````````:;;!;'```````````'```````'```| 所以说 |'``'':
//```````'|$&$%:````````````'```````````|不要停下来啊|''''':
//````'''!$&&&|'```````````'''::''::''''/ (指AC) |':'':::
//````'':|&&&$!'`````'''''''::.....`;!;'/_________|''``'::
// ....'|&&@$!'........```:!;'....`:;:```````````````````'
//..````;$&&&$!:''``````'':|%%!::;|%$$!::::::::''::::::::::
//``````!&&@&&|:'````````':|$$$$$$$$$|:':::::::::::::::::::
//`````:%&@@@@@@@@&&&@@@@&&&&@@@@@@@&&&|::::::::':::::::::;
//`````.```':|$@@@@@@@@@@@@@@@@@@@@@@@@###@@&&$|;:::'::::::
//````````````';|$&@@@@@@@@@###@@@@@@########@@@@$!''''::::
//`````````..````:|%$@@@@@#########@#########@@@@&!''''::::
//`````````````````:|&########################@@@$;::::::::
//``````````````````:!$@########################@%;:::'::::
//``````````..``````':|&#######################@@&!''''''::
//''''::'''`.`''''''':|@#######################@@&|:'`.`';!
//:::::::::``'''''';%@######################@@##@@&!::'';;;
//::;::::::`.''''';%@@@@####################$%@##@@%;:'':;!
//:;;;;::::``':;%@@@#########################&%&##@@|:'';;!
//;;!;;;;;;'`::;%@#############################@@##@$!'';!!
//;;;;;;;;:``':::::;|$@############################@$!'`;!!
//::;;;;;;:'`'::::::;!$@#######################&&@$$$;``:;;
//`````````..````````'|@#####################$;!$$$&@@|''':
//'''''''''''''':'''''|@#########@&@##########@@####@@&%|!!
//''''''''':'''::'':''!&########&!|&@##########&&####&%|!||
//:::::'''::::::::::::!&########|:;|$@#########@&###&%||||!
//:::::::'''''':::::::!&#######@!:;!!$@########@$&##@%||||!
//
// だからよ...止まるじゃねえぞ
// */
#include <vector>
#include <algorithm>
#include <string>
#include<cstring>
#include <iostream>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <unordered_map>
#include <bitset>
#include <cassert>
#include <chrono>
#include <random>
#include <iomanip>
#include <unordered_set>
#include <ctime>
#include <chrono>
using namespace std;
// #define ll long long
const int N =1e5+10;
#define PII pair<int , int >
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define pb push_back
#define sz(x) (int)(x).size()
typedef long long ll;
typedef long double ld;
mt19937 rnd(chrono::high_resolution_clock::now().time_since_epoch().count());
ll n , m ,t ;
ll ar[1000010];
#define __i __int128
//ll mod = 1e9+7;
vector<ll > div(ll x){
vector<ll > res;
for(ll i=1 ;i<=x/i;i++) {
if(x%i==0){
res.push_back(i);
if(i!=x/i)res.push_back(x/i);
}
}
sort(res.begin(), res.end());
return res;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
cin >>n;
while(n--){
string s;cin >>s;
vector<char>o,e;
for(int i=0 ;i<s.size();i++) {
if((s[i]-'0')%2==0)e.pb(s[i]);
else o.pb(s[i]);
}
//cout<<sz(o)<<" "<<sz(e)<<endl;
int num1=0,num2=0;int f=0;
for(int i=0;i<s.size();i++){
if((s[i]-'0')%2==0){
if(num2!=sz(o)&&num1!=sz(e)){
while(e[num1]<=o[num2]){
cout<<e[num1];num1++;
if(num1==sz(e))break;
}
cout<<o[num2];num2++;
}
else{
while(num1!=sz(e)){
cout<<e[num1];num1++;
}
f=1 ;
break;
}
}
if((s[i]-'0')%2==1){
if(num2!=sz(o)&&num1!=sz(e)){
while(o[num2]<=e[num1]){
cout<<o[num2];num2++;
if(num2==sz(o))break;
}cout<<e[num1];num1++;
}
else{
while(num2!=sz(o)){
cout<<o[num2];num2++;
}
f=2;
break;
}
}
}
//cout<<num1<<endl;
if(f==1){
while(num2!=sz(o)){
cout<<o[num2];num2++;
}
}
if(f==2){
while(num1!=sz(e)){
cout<<e[num1];num1++;
}
}
cout<<endl;
}
return 0;
}