首页 > 其他分享 >Q31 LeetCode438 找到字符串中所有字母异位词

Q31 LeetCode438 找到字符串中所有字母异位词

时间:2024-06-13 21:56:14浏览次数:5  
标签:26 LeetCode438 int 异位 cnt Q31 res

没看懂

 

 1 class Solution {
 2     public List<Integer> findAnagrams(String s, String p) {
 3         List<Integer>res=new ArrayList<>();
 4         int[]cnt=new int[26];
 5         int n=p.length();
 6         int m=s.length();
 7         if(n>m){
 8             return res;
 9         }
10         for(int i=0;i<n-1;i++){
11             cnt[p.charAt(i)-'a']++;
12             cnt[s.charAt(i)-'a']--;
13         }
14         cnt[p.charAt(n-1)-'a']++;
15         int l=0;
16         for(int r=n-1;r<m;r++){
17             cnt[s.charAt(r)-'a']--;
18             int o=0;
19             for(int j=0;j<26;j++){
20                 o+=cnt[j]!=0?1:0;
21                 if(o>=1){//此处优化很重要
22                     break;
23                 }
24             }
25             if(o==0){
26                 res.add(l);
27             }
28             cnt[s.charAt(l++)-'a']++;
29         }
30         return res;
31     }
32 }

 

标签:26,LeetCode438,int,异位,cnt,Q31,res
From: https://www.cnblogs.com/cff1/p/18246826

相关文章

  • day05 | 有效的字母异位词、两个数组的交集、快乐数、两数之和
    有效的字母异位词题目链接:242.有效的字母异位词---给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。思路:由于s和t都是由26个小写字母构成,数量很少,直接定义一个......
  • 代码随想录第6天 | ●哈希表理论基础●242.有效的字母异位词●349. 两个数组的交集●2
    题目:242.有效的字母异位词思路:1.ASCII和哈希函数,存入数组,比较数组相等否2.首先选择数据结构,题目只有小写字母,ASCII连续,选用数组,一个字符串遍历,在哈希数组中存入字母出现频率,第二个字符串遍历,做减法。(不需要记ASCII,直接减字母,编译器自己算)时间复杂度:O(n)空间复杂度:O(1)坑......
  • 代码随想录 算法训练营 d6 哈希表 Leetcode242 有效的字母异位词 Leetcode349 两个数
    哈希表很重要哈希表哈希表场景一般哈希表都是用来快速判断一个元素是否出现集合里一般来说数组模拟哈希set 哈希map不同的场景 当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。但是哈希法也是牺牲了空间换取了时间,因为我们要使用额外的数组,se......
  • Q25 LeetCode49 字母异位词分组
    难好好看看  1classSolution{2publicList<List<String>>groupAnagrams(String[]strs){3if(strs==null||strs.length==0)4returnnewArrayList<>();5//map中key存储的是字符串中字母排序后新的字符串6Map<Stri......
  • Q23 LeetCode242 字母异位词
    1.先进行简单的字符长度判断,不相等直接返回false;2.containsKey()的使用3.在减减循环14-17行里判别key的value是否为0,要不然会报错 1classSolution{2publicbooleanisAnagram(Strings,Stringt){3if(s.length()!=t.length()){4return......
  • 代码随想录算法训练营第五天 | 哈希表基础、有效字母异位、两个数组交集、快乐数
    哈希表基础理论https://programmercarl.com/哈希表理论基础.html#哈希表242有效字母异位词题https://leetcode.cn/problems/valid-anagram/description/242代码随想录解析https://programmercarl.com/0242.有效的字母异位词.html#算法公开课349两个数组的交集https://leetc......
  • 49. 字母异位词分组
    题目给你一个字符串数组,请你将字母异位词组合在一起。可以按任意顺序返回结果列表。字母异位词是由重新排列源单词的所有字母得到的一个新单词。示例1:输入:strs=["eat","tea","tan","ate","nat","bat"]输出:[["bat"],["nat","tan"],[&qu......
  • Day 6| 242.有效的字母异位词 、349. 两个数组的交集 、 202. 快乐数 、 1. 两数之和
    242.有效的字母异位词建议:这道题目,大家可以感受到数组用来做哈希表给我们带来的遍历之处。题目链接/文章讲解/视频讲解:https://programmercarl.com/0242.有效的字母异位词.html思考很简单的一道题,需要记住python获取ascii值的函数时ord()classSolution:defisAnag......
  • 代码随想录算法训练营第五天|242(有效的字母异位词),349(两个数组的交集),202(快乐数)
    哈希C#常用的数据结构:[]Array,ArrayList数组和动态数组List集合HashSet哈希集合(无重复值)HashTable哈希表(obj,obj的键值对)Dictionary<T,T>泛型的哈希表什么时候考虑Hash数据结构?需要高效的判断一个值是否存在在一个容器中时。容器不允许重复值(HashSet或哈希表的......
  • 代码随想录算法训练营第六天 | 242.有效的字母异位词 、349. 两个数组的交集、 202.
    哈希表理论基础建议:大家要了解哈希表的内部实现原理,哈希函数,哈希碰撞,以及常见哈希表的区别,数组,set和map。什么时候想到用哈希法,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。这句话很重要,大家在做哈希表题目都要思考这句话。文章讲解:https://program......