【力扣每日一题】1662.检查两个字符串数组是否相等

1662.检查两个字符串数组是否相等

题目描述

给你两个字符串数组 word1 和 word2 。如果两个数组表示的字符串相同,返回 true ;否则,返回 false 。
数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串。

示例图片

在这里插入图片描述

解题思路

双指针

  • 本题为简单题,只需使用两个指针,循环比较下去即可。由于word1和word2的数组内字符串长度并不相同,我们可以判断指针是否指向’\0’,一旦指向’\0’,这说明该数组下标内的字符串访问完毕,随机进入下一个数组下标的字符串,并将指针赋为0,继续循环下去。
  • 最后注意一些边界条件,当退出循环,即有一个数组全部访问完毕之后,还需要判断另一个数组是否还有值,有值则说明字符串不相等。

代码

bool arrayStringsAreEqual(char ** word1, int word1Size, char ** word2, int word2Size){
    int p1,p2; p1=p2=0;
    int i,j; i=j=0;
    while(i<word1Size && j<word2Size){
        while(word1[i][p1]!='\0' && word2[j][p2]!='\0'){
            if(word1[i][p1]!=word2[j][p2]){ return false; }
            p1++; p2++;
        }
        if(word1[i][p1]=='\0'){ i++;p1=0; }
        if(word2[j][p2]=='\0'){ j++;p2=0; }
    }
    if(p1!=0 || p2!=0 || i<word1Size || j<word2Size){ return false; }
    return true;
}

提交结果

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值