左旋转字符串的多种解法

字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。
1.字符串切片

return s.substring(n, s.length()) + s.substring(0, n);

2.字符串遍历拼接
(str.charAt(0)检索str中的第一个字符,str.charAt(str.length()-1)检索最后一个字符.)

	  String reverseLeftWords(String s, int n) {
          char[] ch=s.toCharArray();
          String a="";
          for(int i=n;i<ch.length;i++){
              a+=ch[i]; //可以不用字符数组 res += s.charAt(i);
          }
          for(int i=0;i<n;i++){
              a+=ch[i];
          }
          return a;

求余操作可简化代码

 for(int i = n; i < n + s.length(); i++)
  b+= s.charAt(i % s.length());

3.列表拼接
(String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。)

tatic public String reverse(String s,int n) {
  StringBuilder b=new StringBuilder();
  for(int i=n;i<s.length();i++) {
   b.append(s.charAt(i));
  }
  for(int i=0;i<n;i++) {
   b.append(s.charAt(i));
  }
  return b.toString();
 }

简化代码

for(int i = n; i < n + s.length(); i++)
b.append(s.charAt(i % s.length()));

你可能感兴趣的:(LeetCode刷题笔记,字符串,数据结构,java)