zoukankan      html  css  js  c++  java
  • 程序员面试金典-面试题 01.09. 字符串轮转

    题目:

    字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。

    示例1:

    输入:s1 = "waterbottle", s2 = "erbottlewat"
    输出:True
    示例2:

    输入:s1 = "aa", "aba"
    输出:False
    提示:

    字符串长度在[0, 100000]范围内。
    说明:

    你能只调用一次检查子串的方法吗?

    分析:

    如果一个字符串时由另一个字符串旋转而成,那么他一定是两个另一个字符串拼接成的串的字串。

    例如s1 = waterbottle s2 = erbottlewat

    两个s2拼接得erbottlewaterbottlewat,而s1是它的字串。

    程序:

    class Solution {
        public boolean isFlipedString(String s1, String s2) {
            if(s1.length() != s2.length())
                return false;
            if(s1.equals(s2))
                return true;
            String str = s1+s1;
            int i = 0, j = 0;
            while(i < str.length()){
                if(str.charAt(i) == s2.charAt(j)){
                    i++;
                    j++;
                }else{
                    j = 0;
                    i++;
                }
                if(j == s2.length())
                    return true;
            }
            return false;
            // return str.contains(s2);
        }
    }
  • 相关阅读:
    day04作业
    一个简单的gridlayout栗子
    用户名、密码等15个常用的js正则表达式
    html 颜色
    心态好的人,一辈子都好
    怎么样好好的聊天呢
    一篇引用文章
    再见,发微信不回的人
    第一个不怎么正经的网页
    关于学科目标
  • 原文地址:https://www.cnblogs.com/silentteller/p/12396114.html
Copyright © 2011-2022 走看看