#45064: C++ 清晰解


hsuchenru@gmail.com (Thinking)

學校 : 不指定學校
編號 : 210290
來源 : [118.169.6.33]
最後登入時間 :
2024-11-18 20:20:30
q182. 2. 字串操作 -- 2025年1月APCS | From: [122.99.7.91] | 發表日期 : 2025-01-05 20:31

#include <bits/stdc++.h>
using namespace std;

void cmd0(string &s,int len){
    for(int i = 0;i<len;i+=2)swap(s[i],s[i+1]);
}

void cmd1(string &s,int len){
    for(int i = 0;i<len;i+=2)if(int(s[i])>int(s[i+1]))swap(s[i],s[i+1]);
}

void cmd2(string &s,int len){
    string ns;
    for(int i = 0;i<len/2;i++){
        ns+=s[i];
        ns+=s[(len/2)+i];
    }
    swap(ns,s);
}

signed main(){
    string s;cin>>s;
    int n,len = s.length();cin>>n;
    while(n--){
        int cmds;cin>>cmds;
        if(cmds==0)cmd0(s,len);
        if(cmds==1)cmd1(s,len);
        if(cmds==2)cmd2(s,len);
    }
    cout<<s<<endl;
    return 0;
}

 
ZeroJudge Forum