首页 > 其他分享 >438. 找到字符串中所有字母异位词c

438. 找到字符串中所有字母异位词c

时间:2024-03-18 16:55:06浏览次数:20  
标签:int 异位 字母 judge 438 字符串

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */

bool judge(int* a,int* b){
    for(int i=0;i<27;i++){
        if(a[i]<b[i]) return false;
    }
    return true;
}

int* findAnagrams(char * s, char * p, int* returnSize){
    int n1=strlen(s),n2=strlen(p);
    *returnSize=0;
    if(n1<n2) return NULL; 
    int ts[27]={0};
    int tp[27]={0};
    int* array=(int*)malloc(sizeof(int)*n1);
    for(int i=0;i<n2;i++){
        tp[p[i]-'a']++;
    }
    for(int i=0;i<n2;i++){
        ts[s[i]-'a']++;
    }
    int head=0,tail=n2-1,count=0;
    while(tail<n1){
        if(judge(ts,tp)){
            array[count++]=head;
        }
        ts[s[head++]-'a']--;
        tail++;
        if(tail<n1) ts[s[tail]-'a']++;    
    }
    *returnSize=count;
    return array;
}

 

标签:int,异位,字母,judge,438,字符串
From: https://www.cnblogs.com/llllmz/p/18080889

相关文章

  • C语言:渣女\0与被它区别对待的兄弟俩字符串与字符
    虽然这个拟人手法用的挺那啥,但是我觉得还挺贴切的。你觉得呢?欢迎浏览后发表自己的看法!目录一、字符(一)概念(二)实际操作二、字符串     (一)概念(二)实际操作三、\0对字符串特殊照顾,但对字符就不太行了四、小结一、字符(一)概念        其实字符理解起......
  • 字符函数和字符串函数
    文章目录字符函数和字符串函数字符函数字符分类函数字符转换函数字符串函数strlenstrcpystrcatstrcmpstrncpystrncatstrncmpstrstrstrtokstrerror字符函数和字符串函数字符函数下面介绍的函数均包含在头文件<ctype.h>中字符分类函数字符分类函数帮你判断一个......
  • 字符串拼接re.sub()用法
    re.sub()用法介绍re.sub()函数会搜索string中满足pattern的子串,并用repl替换它们。替换后的字符串作为函数返回值返回re.sub()语法:re.sub(pattern,repl,string,count=0,flags=0)参数:pattern:表示正则表达式中的模式字符串;repl:被替换的字符串(既可以是字符......
  • 459. 重复的子字符串c
    voidbuild(char*s,int*next,intn){next[0]=-1;inti=1,j=-1;while(i<n){if(j==-1||s[j]==s[i-1]){next[i]=j+1;j++;i++;}else{j=next[j];}}for(inti=0;i&l......
  • 小新喊你了解字符串函数了(二)
    接上一篇,我们再学习四个新的字符串函数1.strstr函数的使用和模拟实现 char*strstr(constchar*str1,constchar*str2);strstr函数用于字符串的查到,在一个字符串中查找另一个字符串,找到了就返回字符串str2在字符串str1中第⼀次出现的位置 ,找不到就会返回NULL(空......
  • 代码随想录算法训练营第十天|LeetCode 20.有效的括号、1047.删除字符串中的所有相邻重
    20.有效的括号题目链接:https://leetcode.cn/problems/valid-parentheses/description/解题思路:题目转化:三种类型的括号,需要做匹配匹配规则是:左右括号的类型要匹配、数量要一致,而且要按照顺序匹配例子是:“()”、“(){}[]”、“(([]))”条件转化:按照顺序匹配:......
  • 求字符串中某个字符的数量--long k = s.chars().filter(ch -> ch == c).count();
    classSolution{publiclongcountSubstrings(Strings,charc){longk=s.chars().filter(ch->ch==c).count(); //Java中的count()方法返回值是基本数据类型longreturnk*(k+1)/2;}}作者:灵茶山艾府链接:https://leetcode.cn/pr......
  • [Python初阶]2255.统计是给定字符串前缀的字符串数目
    目录     2255.统计是给定字符串前缀的字符串数目①.题目②.问题分析③.startswith()方法理解与说明Ⅰ.定义和用法 Ⅱ.语法 ④.问题解决⑤总结     2255.统计是给定字符串前缀的字符串数目①.题目②.问题分析需求:统计列表words中,是字......
  • 统计字符串字符个数
    importjava.security.Key;importjava.util.Scanner;importjava.util.Set;importjava.util.TreeMap;publicclassMain{publicstatic<scanner>voidmain(String[]args){System.out.println("请输入一个字符串");Scannersc=newScanne......
  • abc324E 合并两字符串后能
    给定n个字符串s[n]和字符串t,从中任选一对下标(i,j),要求i<=j,让s[i]与s[j]连起来得到一个新的串,要求由新串删除0个或多个字符可以得到t,问存在多少对满足条件的下标对?1<=n<=5e5;1<=len(s[i]),len(t)<=5e5假设由字符串x能得到t的前缀长度为a,字符串y能得到t的后缀长度为b,如果a+b>=le......