【发布时间】:2021-07-22 12:42:15
【问题描述】:
给定一个字符串 s 和一个数字 n,编写一个函数,将偶数索引字符连接到前面,奇数索引字符连接到后面,n 次。 例子:
- s = “哇例子!”`
- result = "WwEapeo xml!"
下面是我对这个问题的回答,现在我需要优化这个解决方案,使其在 O(n) 中运行。请大家帮忙。
public class main {
public static void main(String[] args) {
String wordToJumble = "Wow Example!";
Long numberOfTimes = 1L;
jumbledString( wordToJumble,numberOfTimes);
}
public static String jumbledString(String s,Long n){
StringBuilder sbEven = new StringBuilder();
StringBuilder sbOdd = new StringBuilder();
StringBuilder s2= new StringBuilder(s);
char[] word = s.toCharArray();
if(n>0) {
while (n > 0) {
n--;
sbEven.setLength(0);
sbOdd.setLength(0);
for (int i = 0; i < word.length; i++) {
if (i % 2 == 0) {
sbEven.append(word[i]);
} else {
sbOdd.append(word[i]);
}
}
s2 = sbEven.append(sbOdd);
word = s2.toString().toCharArray();
}
System.out.println(s2);
}else{
System.out.println(s2);
}
return s2.toString();
}
}
【问题讨论】:
标签: java string big-o stringbuilder