java - Leetcode 242, 关于数组递增和遍历的一点问题
本文介绍了java - Leetcode 242, 关于数组递增和遍历的一点问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
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个字母在每个字符串中出现的个数呢?
解决方案
num[s.charAt(i)-'a']++;代表s中该字母的频数加1;
num[t.charAt(i)-'a']--;代表t中该字母的频数减1;
当s和t中所有字母频数相同时即为变形词。
这篇关于java - Leetcode 242, 关于数组递增和遍历的一点问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文