Leetcode-面试题 01.09 字符串轮转

面试题 01.09. 字符串轮转

解题思路

第一种解法,暴力解法
1.判断字符串长度是否相等,如果不等,return false
2.判断两个字符串是否初始相等,如果相等,return true
3.开始遍历s1,从头到尾,每次遍历String s = s1.substring(i + 1) + s1.substring(0, i + 1);
4.判断s与s2是否相等,如果相等,则return true
5.如果遍历到完s1,依然没有相等的字符串,则return false

解题遇到的问题

后续需要总结学习的知识点

1.是否只遍历一次S1,也可以完成,时间和空间复杂度,需要优化

##解法1
class Solution {
    public boolean isFlipedString(String s1, String s2) {
        if (s1.length() != s2.length()) {
            return false;
        }

        if (s1.equals(s2)) {
            return true;
        }

        for (int i = 0; i < s1.length(); i++) {
            String s = s1.substring(i + 1) + s1.substring(0, i + 1);
            if (s.equals(s2)) {
                return true;
            }
        }
        return false;
    }
}

你可能感兴趣的:(Leetcode-面试题 01.09 字符串轮转)