383. Ransom Note

383. Ransom Note_第1张图片

C++

class Solution {
public:
    bool canConstruct(string ransomNote, string magazine) {
    if(ransomNote.length()==0) return true;
    sort(ransomNote.begin(),ransomNote.end());
    sort(magazine.begin(),magazine.end());
    cout<

Java

public class Solution {
    public boolean canConstruct(String ransomNote, String magazine) {
    if(ransomNote.equals("")) return true;
    String[] ranArray=ransomNote.split("");
    String[] magArray=magazine.split("");
    Arrays.sort(ranArray);
    Arrays.sort(magArray);
    int j=0;
    for(int i=0;j

Javascript

/**
 * @param {string} ransomNote
 * @param {string} magazine
 * @return {boolean}
 */
var canConstruct = function(ransomNote, magazine) {
    var ranArray=ransomNote.split("");
    var magArray=magazine.split("");
    ranArray.sort();
    magArray.sort();
    var j=0;
    for(var i=0;j

注意这里各种语言sort的方法和string化数组方法

最优解

Java,O(n)复杂度,统计ransomNote各个字母个数,和magazine比较

public class Solution {
    public boolean canConstruct(String ransomNote, String magazine) {
        int[] arr = new int[26];
        for (int i = 0; i < magazine.length(); i++) {
            arr[magazine.charAt(i) - 'a']++;
        }
        for (int i = 0; i < ransomNote.length(); i++) {
            if(--arr[ransomNote.charAt(i)-'a'] < 0) {
                return false;
            }
        }
        return true;
    }
}

你可能感兴趣的:(383. Ransom Note)