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
思路:统计字符的个数,ransomNote中的各个字符总数是否<=magazine中对应的字符总数;
public classSolution {public booleancanConstruct(String ransomNote, String magazine) {int[] count = new int[26];for(charc:magazine.toCharArray()){
count[c-'a']++;
}for(charc:ransomNote.toCharArray()){if(--count[c-'a']<0)return false;
}return true;
}
}
387. First Unique Character in a String
Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.
Examples:
s = "leetcode"
return 0.
s = "loveleetcode",
return 2.
Note: You may assume the string contain only lowercase letters.
思路1:1)首先都是小写字母,则使用数组统计每个字符出现的次数;
2)再次从头到尾遍历字符串,将字符出现次数为1的字符(首次出现)的下标返回;
public classSolution {public intfirstUniqChar(String s) {if(s==null||s.length()==0)return -1;int[] count = new int[26];//统计次数
for(int i=0;i
count[s.charAt(i)-'a']++;
}for(int i=0;i
}return -1;
}
}