解题思路1:
使用s.substring()
方法
class Solution {
public String reverseLeftWords(String s, int n) {
return s.substring(n) + s.substring(0, n);
}
}
解题思路2:
列表遍历拼接
class Solution {
public String reverseLeftWords(String s, int n) {
StringBuilder sb = new StringBuilder();
for(int i = n; i < s.length(); i++){
sb.append(s.charAt(i));
}
for(int i = 0; i < n; i++){
sb.append(s.charAt(i));
}
return sb.toString();
}
}
注意:
如图上红框所示, 题中已给范围是 k < s.length
, 故不用考虑n
大于字符串长度的情况
可将上面代码用%
简化
//该代码同样适用于 n > s.length的情况
class Solution {
public String reverseLeftWords(String s, int n) {
StringBuilder sb = new StringBuilder();
for(int i = n; i < n + s.length(); i++){
sb.append(s.charAt(i % s.length()));
}
return sb.toString();
}
}
解题思路3:
字符串遍历拼接
class Solution {
public String reverseLeftWords(String s, int n) {
String str = "";
for(int i = n; i < s.length(); i++){
str += s.charAt(i);
}
for(int i = 0; i < n; i++){
str += s.charAt(i);
}
return str;
}
}
用%
简化
class Solution {
public String reverseLeftWords(String s, int n) {
String str = "";
for(int i = n; i < n + s.length(); i++){
str += s.charAt(i % s.length());
}
return str;
}
}