day5|242.有效的字母异位词、349. 两个数组的交集
242.有效的字母异位词
题目链接:https://leetcode.cn/problems/valid-anagram/
文章链接:https://programmercarl.com/0242.%E6%9C%89%E6%95%88%E7%9A%84%E5%AD%97%E6%AF%8D%E5%BC%82%E4%BD%8D%E8%AF%8D.html
视频链接:https://www.bilibili.com/video/BV1YG411p7BA/
package com.fifthday.hashtable;import com.threeday.listnode.ListNode;/*** 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。** 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true** 示例 2: 输入: s = "rat", t = "car" 输出: false** 说明: 你可以假设字符串只包含小写字母。*/
public class IsAnagram {public static void main(String[] args) {String s = "anagram";String t = "nagaram";System.out.println(isAnagram(s,t));}public static boolean isAnagram(String s,String t){int[] records = new int[26]; //对应26个字母的空间for (int i = 0; i < s.length(); i++) {records[s.charAt(i)-'a']++; //s字符串:对应的数组值+1}for (int i = 0; i < t.length(); i++) {records[t.charAt(i)-'a']--; //t字符串:对应的数组值-1}for (int i = 0; i < records.length; i++) {if (records[i] !=0 ){ //遍历数组:如果出现不等于0的情况就是两个字符串对应的字符个数是不同的return false;}}return true;}
}
349. 两个数组的交集
题目链接:https://leetcode.cn/problems/intersection-of-two-arrays/
文章链接:https://programmercarl.com/0349.%E4%B8%A4%E4%B8%AA%E6%95%B0%E7%BB%84%E7%9A%84%E4%BA%A4%E9%9B%86.html
视频链接:https://www.bilibili.com/video/BV1ba411S7wu/
/*** 给定两个数组,编写一个函数来计算它们的交集。** 输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序**/
public class InterSection {public static void main(String[] args) {int[] nums1 ={1,2,2,1};int[] nums2 ={2,2};int[] result = interSection(nums1, nums2);for (int e : result){System.out.print(e+" ");}}public static int[] interSection(int[] nums1,int[] nums2){//验证数组的合法性if (nums1 == null || nums1.length == 0 || nums2 == null || nums2.length == 0) {return new int[0];}//不允许存储重复的元素Set<Integer> set1 = new HashSet<>(); //存储数组Set<Integer> resSet = new HashSet<>(); // 存储交集的集合//先把一个数组转成set集合for (int i = 0; i < nums1.length; i++) {set1.add(nums1[i]);}//使用contains()方法来判断是否存在交集的值for (int i = 0; i < nums2.length; i++) {if (set1.contains(nums2[i])){//如果存在添加到set集合,防止有重复元素出现resSet.add(nums2[i]);}}//最后将set集合转成数组return resSet.stream().mapToInt(e->e).toArray();}
}