zoukankan      html  css  js  c++  java
  • 剑指Offer_面试题58

    剑指Offer_面试题58 - II. 左旋转字符串

    Contents

    题目

    字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。

    示例 1:
    
    输入: s = "abcdefg", k = 2
    输出: "cdefgab"
    示例 2:
    
    输入: s = "lrloseumgh", k = 6
    输出: "umghlrlose"
     
    
    限制:
    
    1 <= k < s.length <= 10000

    解答

    解答1:利用substring()方法

    字符串相关方法复习

    字符串简单方法
    字符串简单方法

    字符串比较方法
    字符串比较方法

    获取子字符串方法
    获取子字符串方法

    获取索引的方法
    获取索引的方法

    需要使用其中的获取子串的方法,substring(beginIndex,endIndex),分别取出前后两个子字符串,然后使用concat(s2)方法拼接起来即可。

    class Solution {
        public String reverseLeftWords(String s, int n) {
            String s1 = s.substring(0,n);
            String s2 = s.substring(n,s.length());
            return s2.concat(s1);
        }
    }

    熟练使用java的字符串相关的方法即可。

    解答2:遍历字符串

    如果不允许使用substring方法,可以直接遍历。

    class Solution {
        public String reverseLeftWords(String s, int n) {
            String res = "";
            for(int i = n;i <= s.length() - 1;i++){
                res += s.charAt(i);
            }
            for(int i = 0;i <= n - 1;i++){
                res += s.charAt(i);
            }
            return res;
        }
    }

    总结

    思路比较简单,几乎不需要怎么思考就知道怎么做,但是在做的过程中还是发现自己的java基础太薄弱,比如上面写出来的资料,都是现查的。也就是说,目前来讲,让我查资料的话,我是可以完成的,但是假如面试的时候,由于存在着这些模棱两可的盲区,肯定效果不会很好。
    解决方式是,刷一刷java教材的课后题,因为说白了还是熟练度不够,看书是没用的,必须都把这些东西敲一遍,才能形成深刻的记忆。

  • 相关阅读:
    动态库 DLL 封装二:dll封装方法
    动态库 DLL 封装一:dll分类
    C++读取配置文件ini
    WCHAR 字符串拼接
    关于web桌面应用的集成解决方案
    CSS Grid网格布局(转)
    使用 antd 的 form 组件来自定义提交的数据格式
    syslogd日志的一些作用
    我的三年感悟——避免无尽的自我内耗
    《被讨厌的勇气》读后感
  • 原文地址:https://www.cnblogs.com/Howfars/p/12404865.html
Copyright © 2011-2022 走看看