有名的网站制作电话,查看网站服务器版本,太原建站培训,有哪些做留学资讯的网站2024.4.1 题目来源我的题解方法一 直接利用StringBuilder的反转函数方法二 字符数组 题目来源
力扣每日一题#xff1b;题序#xff1a;2810
我的题解
方法一 直接利用StringBuilder的反转函数 使用StringBuilder构造结果#xff0c;并利用其反转函数进行翻转 时间复杂度… 2024.4.1 题目来源我的题解方法一 直接利用StringBuilder的反转函数方法二 字符数组 题目来源
力扣每日一题题序2810
我的题解
方法一 直接利用StringBuilder的反转函数 使用StringBuilder构造结果并利用其反转函数进行翻转 时间复杂度O( n 2 n^2 n2) 空间复杂度O(1) public String finalString(String s) {StringBuilder sbnew StringBuilder();for(char ch:s.toCharArray()){if(chi)sbsb.reverse();elsesb.append(ch);}return sb.toString();}方法二 字符数组 使用字符数组代替StringBuilder,自定义实现reverse方法使得时间复杂度降低到O(logn) 时间复杂度O(nlogn) 空间复杂度O(1)。char数组是结果数组不计算入空间复杂度 public String finalString(String s) {char[] sbnew char[s.length()];int i0;for(char ch:s.toCharArray()){if(chi)reverse(sb,i);elsesb[i]ch;}return new String(sb,0,i);
}
public void reverse(char[] s,int n){for(int i0;in/2;i){char ts[i];s[i]s[n-i-1];s[n-i-1]t;}
}有任何问题欢迎评论区交流欢迎评论区提供其它解题思路代码也可以点个赞支持一下作者哈~