左旋字符串

题目描述

汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!

实现过程

  • 这个过程相当于一个循环队列,那么我们只需要求得最小的移动后的结果即可,即是需要将传入参数n对字符串长度取余,然后再对字符串进行操作
  • java中String字符串提供了一个substring的操作可以切分字符串,那么这道题直接调用这个方法,然后就对应的两段值切分返回相加即可得到结果
  • 如果是其他字符串理论上应该是循环k的长度前面的字符串不挺的往后加,然后前面的字符串删除也可以得到结果

JAVA源代码

public class Solution {
    public String LeftRotateString(String str,int n) {
        if (str==null || str.length()==0 || n<=0) return str;
        int length = str.length();
        n = n%length;
        if (n==length) return str;
        str = str.substring(n, length) + str.substring(0, n);
        return str;
    }
}

推荐阅读更多精彩内容

  • 很多塔罗牌上的书里面都写,塔罗牌是反映你内心的镜子,反映你的潜意识。之所以能够占卜出未来,除了反映你的潜意识以外,...
    占卜师三色堇阅读 1,318评论 0 1
  • 一年的时光匆匆,转眼又到了腊月,距离过年还有十一天。今天立春,尽管年关还未到,天气依旧寒冷,但是在阳光的照...
    左左左992阅读 55评论 0 0
  • 关于书 我好像一直痴迷 痴迷于某些读物无法自拔 在同事那里找到某本正版 回家坐在沙发看到凌晨三点 看着某本书的颠荡...
    萍萍_sunshine阅读 33评论 0 0