领扣LintCode算法问题答案-1790. 旋转字符串II

    科技2022-08-05  113

    领扣LintCode算法问题答案-1790. 旋转字符串II

    目录

    1790. 旋转字符串II描述样例 1:样例 2:样例 3: 题解鸣谢

    1790. 旋转字符串II

    描述

    给出一个字符串(以字符数组形式给出),一个右偏移和一个左偏移,根据给出的偏移量循环移动字符串。(left offest表示字符串向左的偏移量,right offest表示字符串向右的偏移量,左偏移量和右偏移量计算得到总偏移量,在总偏移量处分成两段字符串并交换位置)。

    样例 1:

    输入:str ="abcdefg", left = 3, right = 1 输出:"cdefgab" 解释:左偏移量为3,右偏移量为1,总的偏移量为向左2,故原字符串向左移动,变为"cdefg" + "ab"。

    样例 2:

    输入:str="abcdefg", left = 0, right = 0 输出:"abcdefg" 解释:左偏移量为0,右偏移量为0,总的偏移量0,故字符串不变。

    样例 3:

    输入:str = "abcdefg",left = 1, right = 2 输出:"gabcdef" 解释:左偏移量为1,右偏移量为2,总的偏移量为向右1,故原字符串向右移动,变为"g" + "abcdef"。

    题解

    public class Solution { /** * @param str: A String * @param left: a left offset * @param right: a right offset * @return: return a rotate string */ public String RotateString2(String str, int left, int right) { // write your code here if (left > right) { int l = (left - right) % str.length(); str = str.substring(l) + str.substring(0, l); } else if (right > left) { int r = (right - left) % str.length(); str = str.substring(str.length() - r) + str.substring(0, str.length() - r); } return str; } }

    原题链接点这里

    鸣谢

    非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。 欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。

    Processed: 0.011, SQL: 8