编程之美 2.17-字符串循环移位

Posted hequnwang10

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程之美 2.17-字符串循环移位相关的知识,希望对你有一定的参考价值。

一、题目描述

s = “abcd123” k = 3
Return “123abcd”
将字符串向右循环移动 k 位。

二、解题

将 abcd123 中的 abcd 和 123 单独翻转,得到 dcba321,然后对整个字符串进行翻转,得到 123abcd。

class Solution 
    public String turnright(String str,int k)
        String substr1 = reverseString(str.substring(0,str.length() - k));
        String substr2 = reverseString(str.substring(str.length() - k,str.length()));
        return reverseString(substr1+substr2);
    

    public String reverseString(String str1) 
        char[] chs = str1.toCharArray();
        for(int i =0,j = str1.length()-1;i<j;i++,j--)
            char tmp = chs[i];
            chs[i] = chs[j];
            chs[j] = tmp;
        
        return new String(chs);
    

以上是关于编程之美 2.17-字符串循环移位的主要内容,如果未能解决你的问题,请参考以下文章

编程之美 3.1-字符串循环移位包含

字符串移位[源:《编程之美》]

Leetcode题解——数据结构之字符串

C语言编程: 文件移位加密与解密。

循环移位算法

实现字符串右循环移位