LeetCode面试题 01.09 字符串轮转

题目

解答

java 复制代码
package leetcode.editor.cn;

//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public boolean isFlipedString(String s1, String s2) {
        if (s1 == null && s2 == null) {
            return true;
        }

        if (s1 == null || s2 == null) {
            return false;
        }

        if (s1.isEmpty() && s2.isEmpty()) {
            return true;
        }

        if (s1.length() != s2.length()) {
            return false;
        }

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

        return false;
    }
}
//leetcode submit region end(Prohibit modification and deletion)

测试用例

java 复制代码
package leetcode.editor.cn;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

public class SolutionTest {
    private Solution s = null;

    @Before
    public void setUp() throws Exception {
        s = new Solution();
    }

    @Test
    public void test1() {
        Assert.assertTrue(s.isFlipedString("waterbottle", "erbottlewat"));
        Assert.assertTrue(s.isFlipedString("erbottlewat", "waterbottle"));
    }

    @Test
    public void test2() {
        Assert.assertFalse(s.isFlipedString("aa", "aba"));
        Assert.assertFalse(s.isFlipedString("aba", "aa"));
    }

    @Test
    public void test3() {
        Assert.assertTrue(s.isFlipedString("waterbottle", "waterbottle"));
    }

    @Test
    public void test4() {
        Assert.assertFalse(s.isFlipedString("abcd", "acdb"));
    }
}

理解并掌握StringstartsWithsubstring的使用方法。

相关推荐
数聚天成DeepSData5 分钟前
数聚天成 DeepSData 数据价值落地实战指南
java·maven·devops
小小小米粒14 分钟前
阿姆达尔定律(Amdahl‘s Law)
java·开发语言
知彼解己15 分钟前
Java 版本演进
java·开发语言·spring boot
极客先躯31 分钟前
高级java每日一道面试题-2026年05月11日-实战篇[Docker]-如何容器化金融产品推荐系统?
java·运维·docker·容器·金融·高级面试·金融产品推荐系统
朱容zr3331331 小时前
为什么推荐使用自增主键?使用UUID作为主键的优缺点是什么?
java·运维·数据库·后端·mysql·面试·性能优化
知彼解己1 小时前
Eclipse Temurin:企业级 Java JDK 发行版的最佳实践
java·ide·eclipse
朱容zr3331331 小时前
请解释“回表”的概念。
java·前端·数据库
不吃辣4901 小时前
vibe coding | 如何做一个 AI 音乐生成工具?
java·人工智能·后端·ai·ai编程
NWU_LK2 小时前
【WebFlux】第八篇 —— 自定义调度器
java
AI人工智能+电脑小能手2 小时前
【大白话说Java面试题 第210题】【10_网络协议篇】第1题:说说 TCP/IP 网络五层模型
java·网络协议·tcp/ip·计算机网络·网络五层模型