判断一个串是否为某个基本串的简单复制构成的

本文介绍了一个用于检测字符串是否由基本串简单重复构成的算法,并提供了一段Java代码示例。该算法通过遍历字符串并比较子串来确定是否存在重复模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class Test1
{
	/*
	 * 代码的目标:判断一个串是否为某个基本串的简单复制构成的。
	 * 例如:
	 * abcabcabc,它由“abc”复制3次构成,则程序输出:abc
	 * aa 由“a”复制两次构成,则程序输出:a
	 * axa 不是简单复制构成,则不输出任何信息
	 * aaxx 也不是仅仅由简单复制构成,不输出信息。
	 * 请阅读下面的代码,填写缺失的部分(下划线部分)。
	 * 注意:请把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
	 * 直接写在题面中不能得分。
	 */
	public static void findRepeat(String x)
	{
		for(int i=1; i<=x.length()/2; i++)
		{
			String base = x.substring(0,i);
			int p = i;
			for(;;)
			{
				if(p+i>x.length()) break;
				if(x.substring(p,p+i).equals(base)==false) break;
				p+=i;   // 填空1
			}
			
			if(x.substring(i,i+i).equals(base))  // 填空2
			{
				System.out.println(base);
				break;
			}
		}
	}
	
	public static void main(String[] args)
	{
		findRepeat("123123123123123");
	}
}


 

这是一个填空题。
实现顺序的各种基本运算的算法 肉容:编写一个程序 sqstring.cpp实现顺序的各种基本运算,并在此基础上设计完成以下功能。 (1) 建立s="abcdefghijklmn"和 s1="xyz"。 (2) 输出 s。 (3) 输出s的长度。 (4) 在s的第 9个字符的位置插入 s1 而产生s2。 (5) 输出 s2。 (6) 删除s从第 2个字符开始的 5 个字符而产生s2。 (7) 输出s2。 (8) 将s从第2个字符开始的 5 个字符替换成 s1 而产生s2。 (9) 输出 s2。 (10) 提取s 从第 2 个字符开始的 10 个字符而产生s3。 (11) 输出 s3。 (12) 将s1 和 s2 连接起来而产生 s4。 (13) 输出 s4。 基本运算包含函数如下: StrAssign(SgString &s, char cstr[ ]):由常量 cstr 创建顺序 s。 StrCopy(SgString &s, SgString t):将顺序 t复制s。 StrEqual(SgString s, SaString t):判断两个顺序s和t 是否相同。 StrLength(SgString s):求顺序 s 的长度。 Concat(SgString s, SString t):返回将顺序 t 连接到顺序s之后构成的新。 SubStr(SgString s, int i, int i):返回由顺序s的第i个字符开始的j个字符构成的新。 InsStr(SqString sl, int i, SgString s2):返回将顺序s2插入顺序s1的第i个位置构成的新。 DelStr(SqString s, int i, int j):返回删除顺序s从第i个字符开始的j个字符构成的新。 RepStr(SqString s, int i, int j, SgString t):返回将顺序s从第i个字符开始的j个字符替换成顺序 t 构成的新。 DispStr(SgString s):输出顺序 s 的所有元素。
04-21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值