給定一個贖金信 (ransom) 字符串和一個雜志(magazine)字符串,判斷第一個字符串ransom能不能由第二個字符串magazines里面的字符構成。如果可以構成,返回 true ;否則返回 false。
(題目說明:為了不暴露贖金信字跡,要從雜志上搜索各個需要的字母,組成單詞來表達意思。)
注意:
你可以假設兩個字符串均只含有小寫字母。
canConstruct("a", "b") -> false
canConstruct("aa", "ab") -> false
canConstruct("aa", "aab") -> true
思路:統計第二個字符串的字符種類和個數能不能滿足第一個字符串即可。
class Solution {public boolean canConstruct(String ransomNote, String magazine) {int[] num=new int[26]; //定義一個int型數組,來統計每個字符出現的次數for(char i:magazine.toCharArray()){num[i-'a']++; }for(char i:ransomNote.toCharArray()){if(num[i-'a']==0)return false;num[i-'a']--;}return true; }
}
?