Valid anagram

242. 有效的字母异位词
题目链接:https://leetcode-cn.com/problems/valid-anagram/
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = "anagram", t = "nagaram"
输出: true
示例 2:输入: s = "rat", t = "car"
输出: false
说明:
你可以假设字符串只包含小写字母。进阶:
如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?

Python

# 思路:手动模拟hashtable,将字符串”a-z“的ASCII码作key,计数求差异    def  isAnagram(self, s: str, t: str) -> bool:arr1, arr2 = [0]*26, [0]*26for i in s:arr1[ord(i) - ord('a')] += 1for i in t:arr2[ord(i) - ord('a')] += 1return arr1 == arr2
# 思路:map计数,对比计数差异def isAnagram(self, s: str, t: str) -> bool:dict1, dict2 = {}, {}for item in s:dict1[item] = dict1.get(item,0) + 1for item in t:dict2[item] = dict2.get(item,0) + 1return dict1 == dict2
# 思路:数组排序后比较差异def isAnagram(self, s: str, t: str) -> bool:return sorted(s) == sorted(t)

Java

public class Solution {public boolean isAnagram(String s, String t) {if(s.length() != t.length()) return false;int [] a = new int [26];for(Character c : s.toCharArray()) a[c - 'a']++;for(Character c : t.toCharArray()) {if(a[c -'a'] == 0) return false;a[c - 'a']--;}return true;}
}
public boolean isAnagram(String s1, String s2) {int[] freq = new int[256];for(int i = 0; i < s1.length(); i++) freq[s1.charAt(i)]++;for(int i = 0; i < s2.length(); i++) if(--freq[s2.charAt(i)] < 0) return false;return s1.length() == s2.length();
}
public boolean isAnagram(String s, String t)
{char[] sChar = s.toCharArray();char[] tChar = t.toCharArray();Arrays.sort(sChar);Arrays.sort(tChar);return Arrays.equals(sChar, tChar);
}

Group Anagrams:

49. 字母异位词分组
题目链接:https://leetcode-cn.com/problems/group-anagrams/
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"]
输出:
[["ate","eat","tea"],["nat","tan"],["bat"]
]
说明:所有输入均为小写字母。
不考虑答案输出的顺序。

Python

def groupAnagrams(self, strs):d = {}for w in sorted(strs):key = tuple(sorted(w))d[key] = d.get(key, []) + [w]return d.values()
def groupAnagrams(self, strs):dic = {}for item in sorted(strs):sortedItem = ''.join(sorted(item))dic[sortedItem] = dic.get(sortedItem, []) + [item]return dic.values()

Java

public List<List<String>> groupAnagrams(String[] strs) {List<List<String>> res = new ArrayList<>();HashMap<String, List<String>> map = new HashMap<>();Arrays.sort(strs);for (int i = 0; i < strs.length; i++) {String temp = strs[i];char[] ch = temp.toCharArray();Arrays.sort(ch);if (map.containsKey(String.valueOf(ch))) {map.get(String.valueOf(ch)).add(strs[i]);} else {List<String> each = new ArrayList<>();each.add(strs[i]);map.put(String.valueOf(ch), each);}}for (List<String> item: map.values()) {res.add(item);}return res;
}

Two sum

1. 两数之和
题目链接:https://leetcode-cn.com/problems/two-sum/description/
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

Python

    def twoSum(self, nums, target):d = dict()for index,num in enumerate(nums):if d.get(num) == None:d[target - num] = indexelse:return [d.get(num), index]

Java

public int[] twoSum(int[] nums, int target) {HashMap<Integer, Integer> tracker = new HashMap<Integer, Integer>();int len = nums.length;for (int i = 0; i < len; i++){if (tracker.containsKey(nums[i])){int left = tracker.get(nums[i]);return new int[]{left+1, i+1};} else {tracker.put(target - nums[i], i);}}return new int[2];}

[精选代码笔记]Anagram, group-anagrams, two sum相关推荐

  1. stata代码笔记,随时更新

    stata代码笔记 名言 All knowledge is, in final analysis, history; All sciences are, in the abstact, mathema ...

  2. group anagrams leetcode java_LeetCode第[49]题(Java):Group Anagrams

    题目:同字符分组 难度:Medium 题目内容: Given an array of strings, group anagrams together. 翻译:给定一组字符串数组,按相同字符组成的字符 ...

  3. 【LeetCode】49. Group Anagrams

    题目: Given an array of strings, group anagrams together. For example, given: ["eat", " ...

  4. 【SFND_Lidar_Obstacle_Detection】代码笔记

    源代码链接: https://github.com/williamhyin/SFND_Lidar_Obstacle_Detection 激光雷达数据: x,y,z,indensity(可用于评价物体的 ...

  5. 49 Group Anagrams

    题目链接:https://leetcode.com/problems/anagrams/ 题目: Given an array of strings, group anagrams together. ...

  6. 49.Group Anagrams

    49.Group Anagrams 题目描述:Given an array of strings, group anagrams together. For example, given: [&quo ...

  7. SAP RETAIL 为门店代码维护Plant Group

    SAP RETAIL 为门店代码维护Plant Group SAP RETAIL里的Plant/Site Group用于许多场景,如零售定价.补货等.我们可以使用事务CL24N(类别类型:030)对P ...

  8. CSDN技术主题月----“深度学习”代码笔记专栏

    from: CSDN技术主题月----"深度学习"代码笔记专栏 2016-09-13 nigelyq 技术专题 Hi,各位用户 CSDN技术主题月代码笔记专栏会每月在CODE博客为 ...

  9. 看完师兄的代码笔记,我失眠了

    祝大家中秋节快乐! 最近很多公司的秋季招聘都已经启动了. 想必大家(尤其是经历过求职面试的)都知道,数据结构和算法在求职笔试/面试中的重要性. 纵观如今的互联网公司面试,清一色地都在重点考查这块,不开 ...

最新文章

  1. 非线性回归模型java_R中的非线性多元回归
  2. linux内核关闭触摸屏校准,linux内核usb触摸屏驱动bug调试- selected device is not a touchscreen I understand...
  3. 高等数学回顾.pptx
  4. AWK如何打印从某一列到最后一列的内容
  5. intellij连接真实的flink集群
  6. 工作245:vue的注意规范之v-if 与 v-for 一起使用
  7. pkuseg:一个多领域中文分词工具包
  8. 百面机器学习—13.L1正则化与稀疏性
  9. UESTC_神秘绑架案 CDOJ 881
  10. 【基础教程】信噪比+香农公式【1748期】
  11. Mybatis-Plus 自定义 id 生成器
  12. 《IIS6下运行PHP的方法》
  13. MySql卸载不干净怎么办?
  14. SAP HANA TRUNCATE清空数据库表
  15. 群晖 android软件,群晖-手机端常用App
  16. python多条件选股_通达信几种实用的条件选股公式,一旦掌握,至少翻翻!
  17. pytorch动态调整学习率之Poly策略
  18. 树莓派CM4六路串口设置及使用
  19. python爬取微博评论超100页_python爬取新浪微博评论-Go语言中文社区
  20. CAD标注的偏移尺寸和实际尺寸不同该如何解决?

热门文章

  1. Angry Birds Rio 攻略 1-1
  2. android sd卡列目录文件_Android加载SD卡目录,文件夹遍历,图片设置,设置文件对应打开方式等...
  3. [系统安全] 四十六.Powershell恶意代码检测系列 (1)Powershell基础入门及管道和变量的用法
  4. Python之十大经典排序算法的实现和原理
  5. 【数据结构与算法】之深入解析“下一个更大元素II”的求解思路与算法示例
  6. 【数据结构与算法】之深入解析“旋转链表”的求解思路与算法示例
  7. 2013\National _C_C++_B\2.连续奇数和
  8. Jenkins 基本概念与简介
  9. Git出现Unable to create 'E:/xxx/.git/index.lock': File exists.的解决办法
  10. 在VS中创建多个项目