[LeetCode]242.Valid Anagram&383. Ransom Note&389. Find the Difference
来源:互联网 发布:淘宝刷店铺流量 编辑:程序博客网 时间:2024/06/05 15:55
242.Valid Anagram
Easy
Given two strings s and t, write a function to determine if t is an anagram of s.
For example,
s = “anagram”, t = “nagaram”, return true.
s = “rat”, t = “car”, return false.
Note:
You may assume the string contains only lowercase alphabets.
7ms:
public boolean isAnagram(String s, String t) { if(s.length()!=t.length()) return false; int[] ca = new int[26]; for(Character c:s.toCharArray()) ca[c-'a']++; for(Character c:t.toCharArray()) ca[c-'a']--; for(int i:ca){ if(i!=0) return false; } return true; }
383 .Ransom Note
Easy
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
18ms:
int[] cache = new int[26]; for(char x:magazine.toCharArray()) cache[x-'a']++; for(char y:ransomNote.toCharArray()){ cache[y-'a']--; if(cache[y-'a']<0) return false; } return true;
15ms:
public boolean canConstruct(String ransomNote, String magazine) { char[] notes = ransomNote.toCharArray(); int index; for (int i = 0; i < notes.length; i++) { if (notes[i] == '.') continue; else if ((index = magazine.indexOf(notes[i])) < 0) return false; else { int j = i; while ((j = ransomNote.indexOf(notes[i], j + 1)) >= 0) { if ((index = magazine.indexOf(notes[i], index + 1)) < 0) return false; notes[j] = '.'; } } } return true; }
389 . Find the Difference
Easy
Given two strings s and t which consist of only lowercase letters. String t is generated by random shuffling string s and then add one more letter at a random position. Find the letter that was added in t.
Example:
Input:
s = “abcd”
t = “abcde”
Output: e
Explanation: ‘e’ is the letter that was added.
11ms:
public class Solution { public char findTheDifference(String s, String t) { char ss[] = s.toCharArray(); char tt[] = t.toCharArray(); int xx[] = new int[26]; for(Character c:tt) xx[c-'a']++; for(Character c:ss) xx[c-'a']--; int p = 0; while(xx[p]==0) p++; return (char)('a'+p); }}
- [LeetCode]242.Valid Anagram&383. Ransom Note&389. Find the Difference
- leetcode-383. Ransom Note
- [leetcode] 383. Ransom Note
- LeetCode 383. Ransom Note
- leetcode 383. Ransom Note
- leetcode 383. Ransom Note
- 383.[LeetCode]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 383. Ransom Note
- leetcode 383. Ransom Note
- Linux是什么
- MyEclipse10 JNDI的使用及配置
- 受欢迎的5个ORM
- POJ 1258
- 【43.49】【LA 3026】Period
- [LeetCode]242.Valid Anagram&383. Ransom Note&389. Find the Difference
- 开发艺术探索——生命周期和启动模式
- Java学习笔记之Swing(一)
- Codeforces #334 (div2)D (循环节,快速幂)
- POJ-1979(搜索水题)
- SQL总结之常用DDL(MSSQL)
- 怎么样去学习平面设计,学ps就是平面设计了吗?
- (模拟)东风谷早苗
- 粒子群与蚁群算法的区别