RansomNote
Given an arbitrary ransom note string and another string containing letters from all the magazines, write a function that will return true if the ransom note can be constructed from the magazines ; otherwise, it will return false.
Each letter in the magazine string can only be used once in your ransom note.
Note:
You may assume that both strings contain only lowercase letters.
canConstruct("a", "b") -> false canConstruct("aa", "ab") -> false canConstruct("aa", "aab") -> true
1 1 public class Solution { 2 2 public boolean canConstruct(String ransomNote, String magazine) { 3 3 int[] arr = new int[26]; 4 4 for (int i = 0; i < magazine.length(); i++) { 5 5 arr[magazine.charAt(i) - 'a']++; 6 6 } 7 7 for (int i = 0; i < ransomNote.length(); i++) { 8 8 if(--arr[ransomNote.charAt(i)-'a'] < 0) { 9 9 return false; 10 10 } 11 11 } 12 12 return true; 13 13 } 14 14 }