Leetcode 3216. 交换后字典序最小的字符串

因为字符串长度只有100,所以直接模拟就行了。字符串比较不想写的话,可以用C的strcmp

复制代码
 1 class Solution {
 2 public:
 3     string swap(string& s,int i,int j){
 4         string res="";
 5         for(int k=0;k<i;k++)
 6             res+=s[k];
 7         res+=s[j];
 8         for(int k=i+1;k<j;k++)
 9             res+=s[k];
10         res+=s[i];
11         for(int k=j+1;k<s.size();k++)
12             res+=s[k];
13         return res;
14     }
15     
16     string getSmallestString(string s) {
17         string res=s;
18         for(int i=0;i<s.size()-1;i++){
19             int a=s[i]-'0',b=s[i+1]-'0';
20             if(a%2!=b%2) continue;
21             string t=swap(s,i,i+1);
22             // cout<<t<<endl;
23             if(strcmp(t.c_str(),res.c_str())<0)
24                 res=t;
25         }
26         return res;
27     }
28 };
复制代码

 

posted on   greenofyu  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示