当前位置: 首页 > news >正文

【LeetCode】Day200-句子相似性 III

题目

1813. 句子相似性 III【中等】

题解

字符串按空格分割+双指针

  1. 空格分割两个句子,得到字符串数组word1和word2
    (一定能通过往其中一个字符串数组中插入某个字符串数组,得到另一个字符串数组)
  2. 双指针
    i 表示两个字符串数组从开始,最多有 i 个字符串相同。
    j 表示剩下的字符串数组从开始,最多有 j 个字符串相同。
  3. 如果 i+j 正好是某个字符串数组的长度,那么原字符串就是相似的。
class Solution {
    public boolean areSentencesSimilar(String sentence1, String sentence2) {
        //空格分割
        String[] word1=sentence1.split(" ");
        String[] word2=sentence2.split(" ");
        int i=0,j=0,n1=word1.length,n2=word2.length;
        //双指针
        while(i<n1&&i<n2&&word1[i].equals(word2[i]))
            i++;
        //为了让两字符串数组末端对齐,j从0开始,比较下标为n-1-j
        //下标要>=i,因此n-1-j>=i,得到j的范围
        while(j<=n1-i-1&&j<=n2-i-1&&word1[n1-j-1].equals(word2[n2-j-1]))
            j++;
        System.out.println(i+" "+j);
        return i+j==Math.min(n1,n2);
    }
}

时间复杂度: O ( n 1 + n 2 ) O(n1+n2) O(n1+n2)

空间复杂度: O ( n 1 + n 2 ) O(n1+n2) O(n1+n2)

相关文章:

  • 做网上兼职的网站/产品营销策划方案
  • 网站建设未来发展的趋势/电商平台排行榜前十名
  • wordpress版权代码/代写软文费用全网天下实惠
  • 广东省住房和城乡建设厅网站 粤建网/今日要闻
  • asp网站做消息提醒功能/seo入门教程网盘
  • 临淄信息网港/郑州百度seo关键词
  • Python爬虫403错误的解决方案
  • 数字IC设计、验证、FPGA笔试必会 - Verilog经典习题 ( 七)求两个数的差值
  • Vue的依赖收集和性能问题
  • WebStorage之浏览器的本地存储(结合案例)
  • 【系列03】方法的学习 方法重载 命令行传参 递归 简单计算机 [有目录]
  • 爬虫请求模块(同步异步)
  • Linksys WRT路由器刷入OpenWrt与原厂固件双固件及切换
  • 77. 语言模型以及代码实现
  • get请求和post请求
  • 【Kotlin】集合操作 ② ( MutableList 可变列表集合 | 修改 MutableList 集合的 mutator 函数 )
  • 最新ios证书申请流程
  • Java中的LinkedList