左旋转字符串

左旋转字符串

http://www.nowcoder.com/practice/12d959b108cb42b1ab72cef4d36af5ec

牛客的《剑指Offer》难度分级混乱,这种题目应该放在简单的里面,结果放到了中等。

三次翻转啥的确实是没想到,以后有空的时候再看字符串翻转的题解吧,我想的是把这个字符串自身拼接在一起,然后截取其中的一部分,就是结果。

由于题目说了k <= s.length(),因此这道题目不用考虑取模的情形,当然代码里面还是进行了取模,算是更广泛的一种可能性。

题目的可以改进的地方:

  1. k 超过s长度的场景
  2. k为负数的场景,是不是可以当k < 0时相当于右旋。如果不需要考虑,应该给出k的取值范围。
public class Solution {
    public String LeftRotateString(String s, int k) {
        if (s == null || s.length() == 0)
            return "";
        if (k == 0) // 题目没有说明 k < 0如何,实测可知案例中没有k为负数的
            return s;
        int len = s.length();
        k %= len;
        s += s;
        return s.substring(k, k + len);
    }
}
全部评论

相关推荐

爱吃肉的伊登在写日记:好棒,27届简历能做成这个样子,但是第一个项目感觉cover住难度还是不小的,特别是二面的时候肯定要对分布式系统设计这一块儿有高出正常面试者的水平才行
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务