JAVA中for循环什么意思
class Solution {
public boolean canConstruct(String ransomNote, String magazine) {
if (ransomNote.length() > magazine.length()) {
return false;
}
int[] cnt = new int[26];
for (char c : magazine.toCharArray()) {
cnt[c - 'a']++;
}
for (char c : ransomNote.toCharArray()) {
cnt[c - 'a']--;
if(cnt[c - 'a'] < 0) {
return false;
}
}
return true;
}
}
JAVA这段代码中两个for循环什么意思
应该是判断ransomNote中的字符是否都能在 magazine中找到,若不能则返回false。
第一个for是将magazine遍历一遍,如果存在字符,则-'a'得到对应数字为索引,对应数组加一;
第二个for,就是遍历ransomNote,同上,存在字符则对应数组减一。如果ransomNote中的字符都能在 magazine中找到,数组中应该不存在负数。否则判定ransomNote中的字符不能都在 magazine中找到
增强型的for循环的意思
这个是增强for循环,ransomNote.toCharArray()生成一个char类型数组,数组中每个元素依次赋值给:前的char c
将字符串中的每个字符依次拿出来
forEach遍历,依次取数组的每一个元素,从arr[0]取到arr[arr.length - 1]