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

248 篇文章 2 订阅
232 篇文章 0 订阅

一、题目描述

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);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值