面试题58 - II. 左旋转字符串
程序员文章站
2022-04-30 21:06:31
...
题目来源
题目描述
题目解析
法1
class Solution {
public String reverseLeftWords(String s, int n) {
/* int c = n % s.length();
if (c == 0){
return s;
}
*/
int c = n;
for (int i = 0; i < c; i++){
s = s + s.charAt(i);
}
return s.substring(c);
}
}
法2
class Solution {
public String reverseLeftWords(String s, int n) {
/* int c = n % s.length();
if (c == 0){
return s;
}
*/
int c = n;
StringBuilder sb = new StringBuilder();
for (int i = c; i < s.length(); i++){
sb.append(s.charAt(i));
}
for (int i = 0; i < c; i++){
sb.append(s.charAt(i));
}
return sb.toString();
}
}
法3
// 又当数组移动 s.length 出时回到原地
public static String reverseLeftWords(String s, int n) {
// 1 <= k < s.length <= 10000
return s.substring(n) + s.substring(0, n);
}
上一篇: ps怎么绘制一颗小树的插画效果?
下一篇: 文件的上传和下载