zoukankan      html  css  js  c++  java
  • Java-旋转字符串

    描述

    旋转字符串

    给定一个字符串(以字符数组的形式给出)和一个偏移量,根据偏移量原地旋转字符串(从左向右旋转)。
    挑战
    在数组上原地旋转,使用O(1)的额外空间

    说明
    原地旋转意味着你要在s本身进行修改。你不需要返回任何东西。

    注意事项
    offset >= 0
    the length of str >= 0
    Make changes on the original input data

    样例

    样例 1:

    输入: str="abcdefg", offset = 3
    输出: str = "efgabcd"
    样例解释: 注意是原地旋转,即str旋转后为"efgabcd"
    样例 2:

    输入: str="abcdefg", offset = 0
    输出: str = "abcdefg"
    样例解释: 注意是原地旋转,即str旋转后为"abcdefg"
    样例 3:

    输入: str="abcdefg", offset = 1
    输出: str = "gabcdef"
    样例解释: 注意是原地旋转,即str旋转后为"gabcdef"
    样例 4:

    输入: str="abcdefg", offset =2
    输出: str = "fgabcde"
    样例解释: 注意是原地旋转,即str旋转后为"fgabcde"
    样例 5:

    输入: str="abcdefg", offset = 10
    输出: str = "efgabcd"
    样例解释: 注意是原地旋转,即str旋转后为"efgabcd"

    代码

    public class Solution {
        /**
         * @param str: An array of char
         * @param offset: An integer
         * @return: nothing
         */
        public void rotateString(char[] str, int offset) {
            if (str.length == 0){
                return;
            } 
            String t = "";
            for(int n = 0;n<str.length;n++){
                t+=str[n];
            }
            
            offset = offset%t.length();
            
            for(int i = 1;i<=offset;i++){
                t = t.charAt(t.length()-1)+t;
                t = t.substring(0,t.length()-1);
            }
            
            for(int n = 0;n<str.length;n++){
                str[n] = t.charAt(n);
            }
            
        }
    
    }
    
  • 相关阅读:
    IE 8 兼容性方法总结
    select 文本输入查询
    ES6开发环境准备--babel配置(1)
    HTML5--新增可伸缩矢量图SVG一(9)
    HTML5--新增元素canvas一(8.3)
    HTML5--新增元素canvas一(8.2)
    HTML5--新增元素canvas一(8.1)
    HTML5--新增拖放事件(7)
    HTML5--新增元素音频/视频(6)
    HTML5--Range对象的基本操作(5)
  • 原文地址:https://www.cnblogs.com/charlottepl/p/12750022.html
Copyright © 2011-2022 走看看