赞
踩
交换字符 Problem Description
米小游拿到了一个仅由小写字母组成的字符串,她准备进行恰好一次操作:交换两个相邻字母,在操作结束后使得字符串的字典序尽可能大。
请你输出最终生成的字符串。input
一个仅由小写字母组成的字符串,长度不小于 2 ,不超过200000 。
ouput
操作后的字符串。
Sample Input
ba
Sample Output
ab
#include <iostream> #include <string> using namespace std; void swap(char &a, char &b){ char t = a; a = b; b = t; } int main(){ string s; cin >> s; int i, flag = 0; for (i = 0; i < s.size()-1; i++){ if (s[i+1] > s[i]){ swap(s[i], s[i+1]); break; }else if (s[i+1] == s[i]){ flag = 1; } } if (i == s.size()-1){ if (flag == 0){ swap(s[s.size()-1], s[s.size()-2]); } } cout << s; return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。