首页 > 其他分享 >459. 重复的子字符串c

459. 重复的子字符串c

时间:2024-03-17 23:00:13浏览次数:26  
标签:459 int void next 重复 字符串

void build(char* s,int* next,int n){
    next[0]=-1;
    int i=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(int i=0;i<n;i++) printf("%d ",next[i]);
}

bool repeatedSubstringPattern(char* s) {
    int n=strlen(s);
    if(n==1) return false;
    int* next=(int*)malloc(sizeof(int)*n);
    build(s,next,n);
    int t=next[n-1]+1;
    if(s[t-1]!=s[n-1]) return false;
    if(n%(n-t)!=0) return false;
    return true;
}

NEXT数组

标签:459,int,void,next,重复,字符串
From: https://www.cnblogs.com/llllmz/p/18079394

相关文章

  • 小新喊你了解字符串函数了(二)
    接上一篇,我们再学习四个新的字符串函数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......
  • Java学习笔记:字符串
    目录Java学习笔记:字符串String创建String对象内存模型String比较Scanner验证键入的字符串本质是new出来的练习案例:判断账户和密码是否一致遍历字符串统计字符次数字符串反转StringBuilderStringBuilder构造方法链式编程拼接字符串StringJoiner总结必须学习使用JDKAPI帮助文档​......
  • Java学习笔记:字符串
    Java学习笔记:字符串Java学习笔记:字符串String创建String对象内存模型String比较Scanner验证键入的字符串本质是new出来的练习案例:判断账户和密码是否一致遍历字符串统计字符次数字符串反转StringBuilderStringBuilder构造方法链式编程拼接字符串StringJoiner总结必须......
  • 【C语言】字符函数与字符串函数以及内存函数 { 超详细攻略,一篇学会 }
    今日分享:字符、字符串函数和内存函数内存函数就是对内存进行操作的函数字符串函数就是对字符串进行操作的函数字符函数就是对字符进行操作的函数str前缀的函数是字符串函数,头文件string.hmem前缀的函数是内存函数,头文件stdlib.h字符函数与字符串函数以及内存函数......
  • 字符串匹配/查找字符串中子串存在次数/出现位置下标 问题----- {1.[find] 2.[substr]
    下文将介绍三种方法,求解问题类型:1.子串在主串中出现次数2.子串在主串中每次出现的下标位置以此题为例:题目链接:https://www.luogu.com.cn/problem/P8195解法一:kmp#include<iostream>#include<string>usingnamespacestd;constintN=1e6+10;intne[N];......