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();
}
}