非独立思考

    1. public static boolean canConstruct(String ransomNote, String magazine) {
    2. // 很多涉及字母的题目都可以考虑建立字母数组
    3. // 建立字母数组,26个,每出现一个字符,对应的下标++,也就是存放字母出现的次数
    4. // 这样就不用考虑下标,没有对应的字符就为零
    5. // 很极限这波
    6. int[] RN = new int[26];
    7. int[] MG = new int[26];
    8. char[] charsRN = ransomNote.toCharArray();
    9. char[] charsMG = magazine.toCharArray();
    10. // 加强型for循环
    11. for (char c : charsRN) {
    12. RN[c - 'a']++;
    13. }
    14. for (char c : charsMG) {
    15. MG[c - 'a']++;
    16. }
    17. for (int i = 0; i < 26; i++) {
    18. // 如果出现赎金信的字母不够减的情况,就返回false
    19. if (RN[i] > MG[i]) {
    20. return false;
    21. }
    22. }
    23. return true;
    24. // 还可以使用一个中间变量数组存放字母,只要这个变量对应的字符不够救赎信减去的,就返回false
    25. }