欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

面试题58 - II. 左旋转字符串

程序员文章站 2022-04-30 21:06:31
...

题目来源

leetcode

题目描述

面试题58 - II. 左旋转字符串

题目解析

法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);
    }
}

面试题58 - II. 左旋转字符串

法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();
    }
}

面试题58 - II. 左旋转字符串

法3

    
    // 又当数组移动 s.length 出时回到原地
    public static String reverseLeftWords(String s, int n) {
       // 1 <= k < s.length <= 10000
        return s.substring(n) + s.substring(0, n);
    }

面试题58 - II. 左旋转字符串

相关标签: 算法与数据结构