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教材的课后题,因为说白了还是熟练度不够,看书是没用的,必须都把这些东西敲一遍,才能形成深刻的记忆。

  • 相关阅读:
    Ubuntu20 修改网卡名称
    单臂路由实现不同vlan间通信
    配置trunk和access
    基于端口划分vlan
    Zabbix5.0服务端部署
    搭建LAMP环境部署opensns微博网站
    搭建LAMP环境部署Ecshop电商网站
    Zabbix 监控过程详解
    Zabbix agent端 配置
    Zabbix 监控系统部署
  • 原文地址:https://www.cnblogs.com/Howfars/p/12404865.html
Copyright © 2011-2022 走看看