leetcode(383. Ransom Note)
2017-10-19 21:06
363 查看
383. Ransom Note
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
题目解读:
题目叫做Ransom Note,勒索信,为了不暴露字迹,就从杂志上搜索各个需要的字母,组成单词来表达的意思。这样来说,题目也就清晰了,判断杂志上的字是否能够组成勒索信需要的那些字符。 这里需要注意的就是杂志上的字符只能被使用一次,不过不用考虑大小写的问题。 有一种最简单的理解就是对于ransomNote里每个字符出现的次数必须小于或者等于该字符在magazine出现的次数。下面是代码(java):
java:
public class Solution { //原理就是列出了magazine的字母表,然后算出了出现个数,然后遍历ransomNote,保证有足够的字母可用,代码非常清晰。 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; } }
相关文章推荐
- leetcode(85).383. Ransom Note
- LeetCode 383. Ransom Note
- [Leetcode] 383. Ransom Note 解题报告
- LeetCode 383. Ransom Note
- leetcode 383. Ransom Note HashMap 统计字符 + HashMap
- leetcode 383. Ransom Note
- LeetCode-383. Ransom Note (Java)
- Leetcode383. Ransom Note
- Leetcode 383. Ransom Note 构造字符串 解题报告
- LeetCode 383. Ransom Note
- 【leetcode】383. Ransom Note 恐吓信
- [leetcode]383. Ransom Note
- LeetCode 383. Ransom Note
- [LeetCode]383. Ransom Note
- LeetCode 383. Ransom Note 自己的解法
- LeetCode_383. Ransom Note
- [leetcode]: 383. Ransom Note
- LeetCode-Easy部分中标签为String 383. Ransom Note
- leetcode 383. Ransom Note
- leetCode 383. Ransom Note 字符串