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

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

时间:2024-03-12 19:57:30浏览次数:38  
标签:head return int 异位 char tail 438 字符串

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

int change(char c){
    return c-'a';
}

bool judge(char* s,int head,int tail,int n,int* tempp,int* temps){
    if(tail>=n) return false;
    for(int i=head;i<=tail;i++){
        int t=change(s[i]);
        if(temps[t]!=tempp[t]) return false;
    }
    return true;
}


int* findAnagrams(char * s, char * p, int* returnSize){
    int temps[27]={0};
    int tempp[27]={0};
    *returnSize=0;
    int ns=strlen(s),np=strlen(p);
    if(ns<np) return NULL;
    int* array=(int*)malloc(sizeof(int)*(ns));
    for(int i=0;i<np;i++){
        int t=change(p[i]);
        tempp[t]++;
    }
    int head=0,tail=np-1;
    for(int i=head;i<=tail;i++){
        int t=change(s[i]);
        temps[t]++;
    }
    while(tail<ns){
        if(judge(s,head,tail,ns,tempp,temps)){
            array[(*returnSize)++]=head;
        }
        if(tail==ns-1) return array;
        temps[change(s[++tail])]++;
        temps[change(s[head++])]--;   
    }
    return array;
}

力扣独有得全局变量不给多次初始化,真坑啊。

结果:

标签:head,return,int,异位,char,tail,438,字符串
From: https://www.cnblogs.com/llllmz/p/18069096

相关文章

  • 洛谷题单指南-线性表-P4387 【深基15.习9】验证栈序列
    原题链接:https://www.luogu.com.cn/problem/P4387题意解读:判断一组序列入栈后,出栈序列的合法性。解题思路:数据长度100000,直接模拟堆栈的入栈和出栈即可遍历每一个入栈元素,依次入栈,每一个元素入栈后,比较栈顶元素和出栈序列第一个,如果相等,则出栈,持续进行比较、出栈直到不相等......
  • C++ 字符串和字符操作
    1.头文件#inlcude<string>2.std::string&char*区别char*是一个指针string是一个类,内部封装了char,是一个char管理容器3.std::string&C-style字符串区别std::string是C++标准库中的字符串类,提供了许多字符串操作的方法和功能,包括长度计算、拼接、查找、替换等......
  • 给定字符串,输出符合要求的子串
    给定字符串,输出出现次数>3的字符串。实例:输入:"kouredgameredokwhogameredkaraokeyukarikouredrednanikoucankoukouongakugamegame"输出:redgamekou代码:importoperatorinput_str="kouredgameredokwhogameredkaraokeyukarikouredredn......
  • Python 列表中任意字符串是否存在的判断
    `importsysjudge_string=[]target_string=sys.argvjudge_string=['-?','/?','--?','-help','--help','help']target_string=sys.argvjudge_result=any(wordifwordintarget_stringelseFals......
  • 567. 字符串的排列(中)
    目录题目题解:滑动窗口题目给你两个字符串s1和s2,写一个函数来判断s2是否包含s1的排列。如果是,返回true;否则,返回false。换句话说,s1的排列之一是s2的子串示例1:输入:s1="ab"s2="eidbaooo"输出:true解释:s2包含s1的排列之一("ba").示例2:输入:s1=......
  • 代码随想录算法训练营第六天| 242. 有效的字母异位词
    242.有效的字母异位词https://leetcode.cn/problems/valid-anagram/description/publicbooleanisAnagram(Strings,Stringt){char[]sChar=s.toCharArray();char[]tChar=t.toCharArray();Arrays.sort(sChar);Arrays.sort(tChar......
  • Qt 将16进制的内容的QString字符串转为QByteArray数组
    1.QString存储十六进制内容我要发送的十六进制内容是0105040100将其储存在QString字符串中1QStringstr;2str="0105040100";2.核心语句将两位的字符串转换为16进制的Int型数字,然后通过强制类型转换成char类型的字符。(具体作用方式我还没去看,但是有用)(char)str.m......
  • Java的结构、equals字符串判断与反编译
    顺序结构Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句往下执行顺序结构是最简单的算法结构语句与语句之间,框与框之间是按上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构代码举例publicclas......
  • 解决一次前端渲染时,把字符串原有空格去掉的问题
    问题回顾:前端在渲染时,会自动把字符串的空格忽略掉: 百度了下,全都是用js把原字符的空格去掉,但这并不是我想要的 解决方式:在偿试查阅资料后,发现新大陆,原来只要在对面的元素加上css样式即可:style="white-space:pre;" ......
  • delphi 中 StringHelper 详解,字符串常见操作
    大小写转换functionToLower:string;functionToLower(LocaleID:TLocaleID):string;functionToLowerInvariant:string;functionToUpper:string;functionToUpper(LocaleID:TLocaleID):string;functionToUpperInvariant:string;classfunctionLowerCase(const......