第 168 场双周赛Q1——3722. 反转后字典序最小的字符串
2026/7/14 17:06:39 网站建设 项目流程

题目链接:3722. 反转后字典序最小的字符串(中等)

算法原理:

解法:暴力枚举

293ms击败14.84%

时间复杂度O(N²)

思路很简单,先将最小的字典序字符串minstr设为s,然后翻转前k个和后k个,只要遇到更小的字典序字符串就更新,最后返回minstr即可

Java代码:

class Solution { public String lexSmallest(String s) { int n=s.length(); String minStr=s; //反转前k个 for(int k=1;k<=n;k++){ char[] arr=s.toCharArray(); reverse(arr,0,k-1); String newStr=new String(arr); if(newStr.compareTo(minStr)<0) minStr=newStr; } //反转后k个 for(int k=1;k<=n;k++){ char[] arr=s.toCharArray(); reverse(arr,n-k,n-1); String newStr=new String(arr); if(newStr.compareTo(minStr)<0) minStr=newStr; } return minStr; } public void reverse(char[] arr,int start,int end){ while(start<end){ char temp=arr[start]; arr[start]=arr[end]; arr[end]=temp; start++; end--; } } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询