Leetcode 242, 关于数组递增和遍历的一点问题

发布于 2022-09-04 08:00:10 字数 710 浏览 21 评论 0

public class Solution {
public boolean isAnagram(String s, String t) {

 if(s.equals(t))
    return true;
if(s==null||t==null||s.length()!=t.length())
    return false;
int[] num=new int[26];
for(int i=0;i<s.length();i++){
    num[s.charAt(i)-'a']++;
    num[t.charAt(i)-'a']--;
}
for(int i:num ){
    if(i!=0)
        return false;
}
return true;

}

这是用来判断两个字符串s和t是否是变形词的问题,例如abc和bca是变形词, abc和adw不是变形词。

for(int i=0;i<s.length();i++){
    num[s.charAt(i)-'a']++;
    num[t.charAt(i)-'a']--;
}
for(int i:num ){
    if(i!=0)
        return false;
        

关于这段代码有点小疑问,num[]++和num[]--代表着什么? 如果只写 - 'a'的话,又如何记录26个字母在每个字符串中出现的个数呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

韬韬不绝 2022-09-11 08:00:10

num[s.charAt(i)-'a']++;代表s中该字母的频数加1;
num[t.charAt(i)-'a']--;代表t中该字母的频数减1;
当s和t中所有字母频数相同时即为变形词。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文