首页 > 其他分享 >面试题 01.09. 字符串轮转【暴力模拟】【尾插】

面试题 01.09. 字符串轮转【暴力模拟】【尾插】

时间:2022-09-29 17:01:09浏览次数:54  
标签:面试题 return String s2 s1 轮转 字符串 01.09 复杂度

题目

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

难度:简单

提示:

  1. 字符串长度在[0, 100000]范围内。

说明:

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

题解

暴力-335ms

按照题意暴力模拟

class Solution {
    public boolean isFlipedString(String s1, String s2) {
        // 特殊情况
        if ("".equals(s2) && s1.equals(s2)) {
            return true;
        }
        // 如果长度不相等
        if (s1.length() != s2.length()) {
            return false;
        }
        for (int i = 0; i < s1.length(); i++) {
            if (s1.equals(s2.substring(i) + s2.substring(0, i))) {
                return true;
            }
        }
        return false;
    }
}

复杂度分析

  • 时间复杂度:O(N)
  • 空间复杂度:O(N)

尾插-0ms

将s2字符串插入s2,如果循环后有s1,那么尾插后的s2中肯定有s1

class Solution {
    public boolean isFlipedString(String s1, String s2) {
        if (s1.length()!=s2.length()){
            return false;
        }
        String str = s2 + s2;
        return str.contains(s1);
    }
}

复杂度分析

  • 时间复杂度:O(1)
  • 空间复杂度:O(N)

标签:面试题,return,String,s2,s1,轮转,字符串,01.09,复杂度
From: https://www.cnblogs.com/tothk/p/16742182.html

相关文章

  • 力扣做题09. 字符串轮转
    这题还是比较简单的,用两个指针,进行循环比较 执行结果:通过执行用时:60ms,在所有 JavaScript 提交中击败了70.76%的用户内存消耗:41.5MB,在所有 JavaScript 提......
  • Js手写面试题5-Promise
    Promise❓有任何疑问都可以私信我解答⚡仓库地址:https://gitee.com/super_li_yu/promise......
  • REDIS面试题(7)
    20 Redis的大key问题  21如何解决Redis使用key命名阻塞的问题? 如果想要获取整个实例的所有key,建议使用SCAN命令代替。客户端通过执行SCAN$cursorCOUNT$count......
  • 面试题:海量数据处理利器-布隆过滤器
    目录概念原理布隆过滤器的使用场景简单模拟布隆过滤器Guava布隆过滤器Redis布隆过滤器布谷鸟过滤器作者:小牛呼噜噜|https://xiaoniuhululu.com计算机内功、JAVA底层、......
  • 前端基础面试题
    1.前端如何进行性能优化?前端进行性能优化的方案很多,这里只列举部分。在实际应用中不要贪多,想着都用上,要对网站的主要用户群体进行针对性优化。降低请求量合并资源,......
  • 基础面试题
    1.赋值x=x+1print(x)"""A报错B10C11D不知道"""2.交叉赋值m,n=n,mprint(m,n)#9991003.解压赋值name_list=['jason','kevin','tony',......
  • 代码随想录day4 ● 24. 两两交换链表中的节点 ● 19.删除链表的倒数第N个节点 ●
    24.两两交换链表中的节点   1classSolution{2public:3ListNode*swapPairs(ListNode*head){4//创建虚拟头结点5ListNode......
  • 软件测试常考面试题-软件测试面试宝典(一篇足矣)
    问:软件测试的原则?答:1.所有测试的标准都是建立在用户需求之上2.始终保持“质量第一”的觉悟,当时间和质量冲突时,时间要服从质量3.需求阶段应定义清楚产品的质量标准4.软......
  • 一份react面试题总结
    React中constructor和getInitialState的区别?两者都是用来初始化state的。前者是ES6中的语法,后者是ES5中的语法,新版本的React中已经废弃了该方法。getInitialState是ES5......
  • 见微知著,从两道有意思的 CSS 面试题,考察你的基础
    今天在论坛,有看到这样一道非常有意思的题目,简单的代码如下:<div><pid="a">FirstParagraph</p></div>样式如下:p#a{color:green;}div::first-line{......