周期串 - java (注:本文不考虑复杂度)

文章目录

  • 题目描述
  • 解法
    • 枚举
    • 累加
    • 两倍
    • 正则

题目描述

如果一个字符串可以由某个长度为 k k k的字符串重复多次得到,则称该串以 k k k 为周期。例如, a b c a b c a b c a b c abcabcabcabc abcabcabcabc 3 3 3 为周期(注意,它也以 6 6 6 12 12 12为周期, 但是需要选取最小的周期)。

abcabcabc
3

abab
2

aba
3

a
1

aa
1

解法


枚举

static int get(String str)
{int n = str.length();char s[] = str.toCharArray();for (int i = 1; i <= n; i++){if (n % i == 0){boolean f = true; // 判断是否成为周期串for (int j = i; j < n; j++){if (s[j] != s[j % i]){f = false;break;}}if (f)return i;}}return -1;
}

累加

static int get(String s)
{int n = s.length();for (int i = 1; i <= n; i++){if (n % i == 0){String a = s.substring(0, i);String b = "";for (int j = 1; j <= n / i; j++)b += a;if (b.equals(s))return i;}}return -1;
}

两倍

static int get(String s)
{String str = s + s;int n = s.length();for (int i = 1; i <= n; i++){String a = str.substring(i, i + n);if (a.equals(s))return i;}return -1;
}

正则

可以利用正则的替换功能来实现。

从前往后遍历,截取从头到当前的字段来替换字符。
假如替换完的字符串长度为0的话,那么周期串的长度则为他。

static int get(String s)
{int n = s.length();for (int i = 1; i <= n; i++){String a = s.substring(0, i);String b = s.replaceAll(a, "");if (b.length() == 0)return i;}return -1;
}



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/9453.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图片批量高效美化,轻松为图片进行消浊美化,让图片焕然一新

图片已经成为我们传递信息、表达情感的重要媒介。无论是社交媒体的分享&#xff0c;还是工作文档的展示&#xff0c;精美的图片总能吸引更多人的目光。然而&#xff0c;对于许多人来说&#xff0c;图片的美化却是一个令人头疼的问题。一张张手动调整&#xff0c;既耗时又费力&a…

数学AI解题软件有哪些?一分钟分享4款工具

数学AI解题软件有哪些&#xff1f;数学AI解题软件在现代教育中扮演着越来越重要的角色&#xff0c;它们不仅为学生提供了前所未有的解题速度和准确性&#xff0c;还通过个性化的学习建议和资源推荐&#xff0c;促进了学生的自主学习和深度学习。这些软件不仅提高了教育效率&…

Django开发实战之单元测试和集成测试之依赖包的安装

测试有哪些功能&#xff1a; 验证功能质量控制重构基础回归基础 1、安装依赖 pdm add -d black isort flake8 pytest pytest-django pytest-coverage使用依赖 在使用flake8时&#xff0c;需要把venv排除&#xff0c;这里是通过添加配置文件来进行管理&#xff0c;所以接下来…

企业必备:加密软件如何保障商业数据安全

在数字化时代&#xff0c;商业数据安全已成为企业运营中不可忽视的一环。在这个信息爆炸的时代&#xff0c;企业面临着诸多安全威胁&#xff0c;如数据泄露、黑客攻击等。因此&#xff0c;如何有效保障商业数据安全成为了每个企业都必须面对和解决的问题。而加密软件&#xff0…

webstorm 常用插件

安装插件步骤&#xff1a; 打开软件&#xff0c;文件 -- 设置-- 插件 -- 输入插件名称 -- 安装 代码截图: code screenShots 先选中代码&#xff0c;按 ctrl shift alt a&#xff0c;就可截取选中的代码颜色注释: comments highlighter 对注释的文字改变颜色高亮成对符号: h…

新一代多模态合规分析平台,炼就服务洞察火眼金睛

得益于5G技术的深入应用和大模型技术的持续创新&#xff0c;企业与客户间的沟通方式已从单一的语音交流拓展到视频通话、内容共享等多模态互动。 这种通话形式的演变&#xff0c;极大地丰富了沟通手段&#xff0c;并为企业提供了更多洞察客户需求、提供精准服务的机遇。 与此…

toml与json联系对比

前言 本文简单介绍toml&#xff1b;并且和json转化做对比&#xff0c;以及我对toml设计的理解。 参考&#xff1a; TOML: 简体中文 v1.0.0 json和toml转化工具 在线JSON转toml-toml转JSON - bejson在线工具 正文 数组 说白了&#xff0c;就是一个变量名&#xff0c;有多个…

SpringBoot整合MyBatis步骤

在Spring Boot中整合MyBatis可以通过几种方式实现&#xff0c;主要包括使用官方的MyBatis Spring Boot Starter&#xff0c;或者通过手动配置。 使用MyBatis Spring Boot Starter&#xff0c;这是最简单的方式&#xff0c;因为Spring Boot Starter为我们自动配置了大部分的MyB…

上海AI Lab开源首个可替代GPT-4V的多模态大模型

与开源和闭源模型相比&#xff0c;InternVL 1.5 在 OCR、多模态、数学和多轮对话等 18 个基准测试中的 8 个中取得了最先进的结果。 上海AI Lab 推出的 InternVL 1.5 是一款开源的多模态大语言模型 (MLLM)&#xff0c;旨在弥合开源模型和专有商业模型在多模态理解方面的能力差距…

【智能算法应用】麻雀搜索算法求解非线性方程组问题

目录 1.算法原理2.数学模型3.结果展示4.代码获取 1.算法原理 【智能算法】麻雀搜索算法&#xff08;SSA&#xff09;原理及实现 2.数学模型 非线性方程组为&#xff1a; 2 x 1 − x 2 e − x 1 − x 1 2 x 2 e − x 2 (1) \begin{aligned}&2x_1-x_2e^{-x_1}\\&-…

keepalive 理解

发送信息到目的ip失效&#xff08;对端服务器或者POD挂了&#xff09;&#xff0c;SYN 重试到TIMEOUT 内核参数TCP_SYNCNTGo grpc 设置withblock会一直阻塞&#xff0c;不设置withbloack每20s重试一次(20s是默认值) 发送信息到已经建连连接&#xff0c;TCP 重试到TIMEOUT 内…

基于机器学习的学生学习行为自主评价设计与实现

管理员功能&#xff1a; a)学生学习数据管理&#xff1a;可查看学生学习的详情&#xff0c;编辑学生学习的内容&#xff0c;删除和添加学生学习&#xff0c;设置学生学习库存。 b)角色管理&#xff1a;增加删除学生用户&#xff0c;分配学生用户权限&#xff0c;查看学生用户…

VirtualPrivate Network v2rayN

1, download/receive the package v2rayN 2, download .net package https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-desktop-8.0.4-windows-x64-installer?cidgetdotnetcore

油猴脚本:BOSS候选人简历工作履历时间自动计算显示

BOSS的候选人工作履历时间不计算&#xff0c;不符合我的查看习惯&#xff0c;很容易让那种经常跳槽的人简历通过&#xff0c;容易遗漏&#xff0c;特编写此程序! 使用前&#xff1a;使用后&#xff1a; 代码如下&#xff1a; // UserScript // name BOSS网页版辅助器…

马蹄集oj赛(双周赛第二十六次)

目录 斐波那契数列的组合 三国杀 数列分段 小码哥的跳棋游戏新编 能量供应 小码哥爱数字 最小串 小船过河 摘果子 泼墨淋漓 很重的枪 小码哥的布阵指挥 斐波那契数列的组合 #include<bits/stdc.h> using namespace std;// 斐波那契数列 1 1 2 3 5 8 13 21 34…

uni-app小知识点记录

一、uniapp输入框禁止输入汉字 <u-form-item label"****" prop"****"><u-input v-model"绑定值" type"text" input"limitInput"/> </u-form-item>limitInput(e) {this.$nextTick(() > {绑定值 e.rep…

通过实例学C#之Stack类

简介 集合&#xff0c;后进先出。 构造函数 Stack<>() 不使用参数创建stack对象。 Stack<>(ICollection col) 使用数组col来创建stack对象。 常用属性 Count 获取stack中包含的元素数。 static void Main(string[] args) {string[] strArray { "monda…

LeetCode HOT 100刷题总结

文章目录 1 哈希1.1 1-1.两数之和&#x1f7e2;1.2 2-49.字母异位词分组&#x1f7e1;1.3 3-128.最长连续序列&#x1f7e1; 2 双指针2.1 4-283.移动零&#x1f7e2;2.2 6-15.三数之和&#x1f7e1;2.3 7-11.盛最多水的容器&#x1f7e1;2.4 8-42.接雨水&#x1f534; 3 滑动窗…

【Web漏洞指南】服务器端 XSS(动态 PDF)

【Web漏洞指南】服务器端 XSS&#xff08;动态 PDF&#xff09; 概述流行的 PDF 生成工具常见攻击载荷 概述 如果一个网页使用用户控制的输入创建 PDF&#xff0c;您可以尝试欺骗创建 PDF 的机器人以执行任意的 JS 代码。 因此&#xff0c;如果PDF 创建机器人发现某种HTML标签…

【退役之重学Java】如何保证消息的幂等性

除了要保证高可用之外&#xff0c;从消息队列里消费到重复的消息该怎么办&#xff1f;即如何保证消息的幂等性 一、场景 消费者刚消费完&#xff0c;还没有提交&#xff0c;突然重启&#xff0c;导致重启后又收到了相同的消息&#xff0c;这就是重复消费 二、保证幂等性是什么…