面试题 01.09. 字符串轮转
Posted bincode
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试题 01.09. 字符串轮转相关的知识,希望对你有一定的参考价值。
题目来源:https://leetcode-cn.com/problems/string-rotation-lcci/
字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。
示例1:
输入:s1 = "waterbottle", s2 = "erbottlewat"
输出:True
示例2:
输入:s1 = "aa", s2 = "aba"
输出:False
提示:
字符串长度在[0, 100000]范围内。
1 class Solution { 2 public boolean isFlipedString(String s1, String s2) { 3 if(s1.length() != s2.length()) return false; 4 String s = s2+s2; 5 return s.contains(s1); // 0ms 6 } 7 }
有意思的错误分享:
刚开始把题目当成字符串反转后比对;
1 public class 字符串轮转 { 2 public boolean isFlipedString(String s1, String s2) { 3 if(s1.length() != s2.length()) return false; 4 StringBuilder builder = new StringBuilder(); 5 builder.append(s2); 7 return s1.equals((builder.reverse().toString())); 8 } 9 10 public static void main(String[] args) { 11 字符串轮转 str = new 字符串轮转(); 12 System.out.println(str.isFlipedString("abcd", "dcba")); 13 } 14 }
学习记录:
1、 == 和 equals的区别?
==:对于基本类型来说是值比较,对于引用类型来说比较的是引用;
//StringBuilder源码
public boolean equals(Object obj) { return (this == obj); }
我们可以将StringBuilder通过toString转换成String再进行值比较
以上是关于面试题 01.09. 字符串轮转的主要内容,如果未能解决你的问题,请参考以下文章