题目所属分类
类 字符串处理
简单做法可以使用Java中字符串的substring方法
substring方法中范例介绍
public class RunoobTest {
public static void main(String args[]) {
String Str = new String("This is text");
System.out.print("返回值 :" );
System.out.println(Str.substring(4) );
System.out.print("返回值 :" );
System.out.println(Str.substring(4, 10) );
}
}
输出
返回值 : is text
返回值 : is te
原题链接
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。
代码案例:输入: s = “abcdefg”, k = 2
输出: “cdefgab”
题解
简单做法
class Solution {
public String reverseLeftWords(String s, int n) {
return s.substring(n)+s.substring(0 , n);
}
}
常规
class Solution {
public String reverseLeftWords(String str, int n) {
char[] ss = str.toCharArray();//abcdefg
int len = ss.length;//7
reverse(ss, 0, len - 1);//gfedcba
reverse(ss, 0, len - n - 1);//cdefgba
reverse(ss, len - n, len - 1);//cdefgab
return String.valueOf(ss);
}
private void reverse(char[] s, int l, int r) {
for (int i = l, j = r; i < j; i++, j--) {
char t = s[i];
s[i] = s[j];
s[j] = t;
}
}
}