算法,不如说它是一种思考方式
算法专栏: 123
substring
就是直接截取前后子字符串拼接即可:
class Solution {
public String reverseLeftWords(String s, int n) {
return s.substring(n,s.length())+s.substring(0,n);
}
}
使用可变字符串来编辑,先把整个字符串反转,再把两段分别反转就是答案了:
class Solution {
public String reverseLeftWords(String s, int n) {
StringBuilder ns=new StringBuilder(s);
reverseString(ns,0,s.length()-1);
reverseString(ns,0,s.length()-n-1);
reverseString(ns,s.length()-n,s.length()-1);
return ns.toString();
}
private static void reverseString(StringBuilder ns, int i, int length) {
while (i<length){
char tem= ns.charAt(i);
ns.setCharAt(i,ns.charAt(length));
ns.setCharAt(length,tem);
i++;length--;
}
}
}
创建等长的字符串数组,从旋转的点开始向后填进数组,到最后的位置返回到字符串第一个(取余吧),直到n个字符结束。
class Solution {
public String reverseLeftWords(String s, int n) {
char[]ns=new char[s.length()];
for (int i = 0; i < s.length(); i++) {
ns[i]=s.charAt((i+n)%s.length());
}
return new String(ns);
}
}
返回第一页。☝
☕物有本末,事有终始,知所先后。
☝☝☝☝☝我的CSDN☝☝☝☝☝☝