力扣1662(javapython)-检查两个字符串数组是否相等(简单)

news/2024/4/26 5:42:21/文章来源:https://www.cnblogs.com/liu-myu/p/16846680.html

题目:

给你两个字符串数组 word1 和 word2 。如果两个数组表示的字符串相同,返回 true ;否则,返回 false 。

数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串。

 

示例 1:

输入:word1 = ["ab", "c"], word2 = ["a", "bc"]
输出:true
解释:
word1 表示的字符串为 "ab" + "c" -> "abc"
word2 表示的字符串为 "a" + "bc" -> "abc"
两个字符串相同,返回 true
示例 2:

输入:word1 = ["a", "cb"], word2 = ["ab", "c"]
输出:false
示例 3:

输入:word1 = ["abc", "d", "defg"], word2 = ["abcddefg"]
输出:true
 

提示:

  • 1 <= word1.length, word2.length <= 103
  • 1 <= word1[i].length, word2[i].length <= 103
  • 1 <= sum(word1[i].length), sum(word2[i].length) <= 103
  • word1[i] 和 word2[i] 由小写字母组成

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/check-if-two-string-arrays-are-equivalent
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

一、字符串拼接

直接将两个数组中的字符串进行拼接,然后再比较两个字符串是否相等。

java代码:

 1 class Solution {
 2     public boolean arrayStringsAreEqual(String[] word1, String[] word2) {
 3         StringBuilder sb1 = new StringBuilder();
 4         StringBuilder sb2 = new StringBuilder();
 5         for(int i = 0; i < word1.length; i++){
 6             sb1.append(word1[i]);
 7         }
 8         for(int i = 0; i < word2.length; i++){
 9             sb2.append(word2[i]);
10         }
11         return sb1.toString().equals(sb2.toString()); 
12     }
13 }

 

 代码优化:

1 class Solution {
2     public boolean arrayStringsAreEqual(String[] word1, String[] word2) {
3        return String.join("", word1).equals(String.join("", word2));
4     }
5 }

 二、遍历

设置两个指针w1和w2,分别表示遍历到 word1[w1] 和 word2[w2] ,另外设置两个指针 i 和 j,表示 word1[w1][i] 和 word2[w2][j] ,如果 word1[w1][i] 不等于 word2[w2][j],直接返回false.否则,就是相等,让i + 1,如果 i == word1[w1].length(),说明已经遍历到 w1的末尾。需要遍历下一个字符串了,这时让w1+1,i 重置为0,j与i同样处理。最终判断条件:w1 == word1.length && w2 == word2.length,成立返回true,不成立返回false。

java代码:

 1 class Solution {
 2     public boolean arrayStringsAreEqual(String[] word1, String[] word2) {
 3        int w1 = 0, i = 0;
 4        int w2 = 0, j = 0;
 5        while(w1 < word1.length && w2 < word2.length){
 6            if(word1[w1].charAt(i) != word2[w2].charAt(j)){
 7                return false;
 8            }
 9            i++;
10            //当一个单词遍历结束后,遍历下一个单词,重置i
11            if(i == word1[w1].length()){
12                i = 0;
13                w1++;
14            }
15            j++;
16            //当一个单词遍历结束后,遍历下一个单词,重置j
17            if(j == word2[w2].length()){
18                j = 0;
19                w2++;
20            }
21        }
22        return w1 == word1.length && w2 == word2.length;
23     }
24 }

 python3代码:

 1 class Solution:
 2     def arrayStringsAreEqual(self, word1: List[str], word2: List[str]) -> bool:
 3         w1 = w2 = i = j = 0
 4         while w1 < len(word1) and w2 < len(word2):
 5             if word1[w1][i] != word2[w2][j]:
 6                 return False
 7             i += 1
 8             if i == len(word1[w1]):
 9                 w1 += 1
10                 i = 0
11             j += 1
12             if j == len(word2[w2]):
13                 w2 += 1
14                 j = 0
15         return w1 == len(word1) and w2 == len(word2)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_410219.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot:ssm和springboot整合

目录 一、整合Mybatis 因为要使用逆向生成代码 pom.xml generatorConfig.xml application.yml 测试 BookController SpringbootmybatisApplication jdbc.properties 二、整合mybatisplus 简介 application.yml MPGenerator SpringbootmpApplication 三、使用my…

ensp华为配置NAT

ensp华为配置NAT 文章目录ensp华为配置NAT1 对PC进行地址、掩码及网关配置2 对路由器进行初始配置3 ART配置3.1 静态NAT配置3.2 动态NAT配置3.3 端口NAT (NAPT) 的配置3.4 Easy IP的配置3.5 NAT Server的配置4 总结拓扑图如图&#xff1a;1 对PC进行地址、掩码及网关配置 略 …

计算机毕设(附源码)JAVA-SSM佳音大学志愿填报系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

计算机毕设(附源码)JAVA-SSM蓟县农家乐网站

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

通俗易懂!一文看懂手机Root的操作与防护

Root&#xff0c;对于任何手机发烧友、玩机客、从事移动设备研发的人员来说&#xff0c;并不陌生&#xff0c;它代表绝大部分移动设备的使用者能够掌握到的最高权限。 从技术层次来讲&#xff0c;用户拥有了修改系统文件的权限&#xff0c;甚至可以控制账户、增加或删除硬件等…

java毕业设计——基于java+JSP+sqlserver的智能在线考试信息管理系统设计与实现(毕业论文+程序源码)——智能在线考试信息管理系统

基于javaJSPsqlserver的智能在线考试信息管理系统设计与实现&#xff08;毕业论文程序源码&#xff09; 大家好&#xff0c;今天给大家介绍基于javaJSPsqlserver的智能在线考试信息管理系统设计与实现&#xff0c;文章末尾附有本毕业设计的论文和源码下载地址哦。 文章目录&a…

内部财务经营分析该怎么做?

对于日常在企业工作的财务人员来说&#xff0c;做对外财务报表分析的机会并不多&#xff0c;我们在网上经常看到的对上市公司财务报表的分析&#xff0c;是基于投资人的角度来对这家公司披露的财务及经营信息所做的分析。 实际工作当中&#xff0c;大家应用到更多的其实是内部…

【Linux详解】——gcc/g++/gdb/git的使用

&#x1f4d6; 前言&#xff1a;本期将学习gcc/g/gdb/git的使用 目录&#x1f552; 1. 程序的翻译过程&#x1f552; 2. 理解选项的含义&#x1f552; 3. 动态链接和静态链接&#x1f552; 4. Linux项目自动化构建工具-make/Makefile&#x1f558; 4.1 背景&#x1f558; 4.2 使…

发布四大战略举措,亚马逊云科技看准了中国云市场的哪些新机会?

导读&#xff1a;全球最大的云厂商&#xff0c;在中国的最新布局。 2022年10月13日&#xff0c;亚马逊云科技在线上举办2022中国峰会。亚马逊云科技不仅发布了云计算技术趋势展望&#xff0c;还宣布了深耕中国市场的四大战略举措&#xff1a;“连中外、襄百业、携伙伴、促绿色”…

【Java8新特性】函数式接口

目录1. 介绍1.1 FunctionInterface注解1.2 函数式接口的调用2. 函数式编程2.1 Lambda的延迟加载技术2.2 Lambda表达式的使用3. 常用的函数式接口3.1 Supplier生产型接口3.2 Consumer消费型接口默认方法&#xff1a;andThen3.3 Predicate条件判断接口3.4 Function普通函数接口默…

ASP.NET Core教程-跨域配置(CORS Configuration)

更新记录 转载请注明出处: 2022年11月1日 发布。 2022年11月1日 从笔记迁移到博客。说明 Cross-Origin Resource Sharing,跨域资源共享 配置方式 在ASP.NET Core中有2种方式配置跨越,中间件方式(middleware approach) 和 特性修饰方式(attributes approach)。 中间件方式…

在Jupyter Notebook中使用Matplotlib(Anaconda3)

Matplotlib&#xff08;官网 Matplotlib — Visualization with Python &#xff09;是一个用于创建二维图形的Python库&#xff0c;它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。将Jupyter Notebook于Matplotlib结合使用效果更好。 在Anaconda3的Jupyter …

HCL AppScan Standard漏洞扫描处理记录

官网&#xff0c;标准版应该是免费的&#xff0c;下载了标准版&#xff0c;没提示激活啥的&#xff0c;最近处理客户的漏洞扫描问题&#xff0c;主要就是修改nginx配置&#xff0c;各种查资料&#xff0c;不停的扫描验证&#xff0c;简单记录下吧。 APP简单使用 app快速下载地…

flutter 系列之:flutter 中的幽灵offstage

文章目录简介Offstage详解Offstage的使用总结简介 我们在使用flutter的过程中&#xff0c;有时候需要控制某些组件是否展示&#xff0c;一种方法是将这个组件从render tree中删除&#xff0c;这样这个组件就相当于没有出现一样&#xff0c;但是有时候&#xff0c;我们只是不想…

技术革新,取代传统会议模式?原来这么简单

随着AI人工智能的盛行&#xff0c;各领域面临前所未有的技术革新。人脸识别作为人工智能的一项重要技术&#xff0c;为工作及生活带来极大便捷&#xff0c;增效赋能。 人脸签到技术5大优势 01.人脸识别稳定&#xff0c;即使在光源不佳、角度受限的环境下也能精准识别&#xff1…

Libuv 各个回调(异步)事件的调用时机

Libuv 各个回调&#xff08;异步&#xff09;事件的调用时机 uv_close、uv_timer_start uv_close中注册的回调事件&#xff08;close_cb&#xff09;查阅官网API文档&#xff0c;Handle句柄是调用uv_close便会立即关闭&#xff0c;而注册的回调事件将推迟到下一次Loop循环中执…

设计模式——创建型模式

五大-创建型模式一、单例模式1、简介2、单例模式八种方式2.1、饿汉式&#xff08;静态常量&#xff09;2.2、饿汉式&#xff08;静态代码块&#xff09;2.3、懒汉式&#xff08;线程不安全&#xff09;2.4、懒汉式&#xff08;线程安全&#xff0c;加同步方法&#xff09;2.5、…

C2 实验 学习笔记

C2 实验 免责声明 本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关. C2隐藏技术 CDN 准备 一台 vultr centos7 机器一个域名cloudflare 账号 挂上 cdn 在域名购买后配置&#xff0c;cf 中的域名解析&#xff0c;在 cf 中配置…

「MySQL高级篇」MySQL之MVCC实现原理事务隔离级别的实现

①MVCC定义,用处,快照读,当前读 ②MVCC实现原理:隐藏字段,readview,undo log ③readview访问规则 ④事务隔离级别的具体实现大家好,我是melo,一名大三后台练习生,死去的MVCC突然开始拷打我🤣🤣🤣!🍳引言 MVCC,非常顺口的一个词,翻译起来却不是特别顺口:多…

Fiddler 抓包工具

1 基本使用 官网下载地址&#xff1a;Download Fiddler Web Debugging Tool for Free by Telerik X.1 电脑端监听 我们双击打开软件&#xff0c;进入到如下的一个界面&#xff0c;然后点击某一个请求&#xff0c;你会发现请求的内容是一堆明显不对的文字&#xff0c;然后该请求…