1.6 判断一个字符串是否由重复子字符串组成

  • 题目描述
  • 解题思想一
  • 代码一

题目描述

给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母。
例1

输入: "abcabc"
输出: True
解释: 可由子字符串 "abc" 重复两次构成。

例2

输入: "abac"
输出: False
解释:字符串不是由子字符串重复多次构成的。

例3

输入: "abababab"
输出: True
解释: 可由子字符串 "ab" 重复四次构成。 (或者子字符串 "abab" 重复两次构成。)

解题思想一

如果一个字符串 s 是由子字符串重复构成的,他首先满足两个条件:(1)子字符串的长度小于 s 的长度;(2)s 的长度除以子字符串的长度是一个整数。
      根据以上两个条件分割字符串,然后判断分割后的子字符串是否相同,相同则返回true,否则说明字符串 s 不是由子字符串重复构成的。

代码一

/*** 判断一个字符串是否是由子字符串重复构成的* @author dxt**/
public class Test01 {/*** 判断字符串s是否是由子字符串重复构成的* @param s* @return*/public static boolean repeatedSubstringPattern(String s) {//只有一个字符if(s.length() <= 1){return false;}int parts = 1;  //字符串子串的重复次数int len = s.length();//重复的次数小于s.length()while(parts < len){//字符串长度是 重复子串 长度的正数倍if(len%(parts+1) == 0){//已满足重复的条件,判断是否重复boolean repeat = true;  //假设字符串就是重复的int part_len = len / (parts+1);//子串的长度for(int i=1; i<=parts; i++){for(int j=0; j<part_len; j++){if(s.charAt(j) != s.charAt(j+i*part_len)){repeat = false; //不重复,退出循环break;}}//如果不重复,退出 判断是否重复 的这段程序if(!repeat){break;}}//如果重复,返回trueif(repeat){return true;}}parts++;}//没有在前面判断出重复,则返回falsereturn false;}/*** 测试* @param args*/public static void main(String[] args) {String str = "abababa";System.out.println(repeatedSubstringPattern(str));}
}

1.6 判断一个字符串是否由重复子字符串组成相关推荐

  1. 回文字符串:判断一个是否是回文字符串。回文字符串是指正序(从左向右)和倒序(从右向左)读都是一样的字符串。

    题目描述: 判断一个是否是回文字符串.回文字符串是指正序(从左向右)和倒序(从右向左)读都是一样的字符串. 示例1 输入:abc 输出:false 示例2 输入:-121 输出:false 示例3 输 ...

  2. java用if判断输入字符_JAVA中如何判断一个输入是数字还是字符串

    展开全部 1.使用Character.isDigit(char)判断 String str = "123abc"; if (!"".equals(str)) { ...

  3. python中如何判断输入的是英文字母_python如何判断一个字符是否为汉字,英文字母,数字,空还是其他...

    一直在忙工作的事情,对不起大家,今后一定抽出时间来写python,和大家一起学python. 今天给大家一段代码,大家可以看一下哈. # 判断一个字符是否为汉字,英文字母,数字,空还是其他 # 使用U ...

  4. JS判断一个变量是否是数组

    方法一:Array.isArray() Array.isArray() 用于确定传递的值是否是一个 Array:返回 boolean 型,如果值是 Array则为 true:否则为 false // ...

  5. 重复子字符串(给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。)

    给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成.给定的字符串只含有小写英文字母,并且长度不超过10000.   示例 1: 输入: "abab" 输出: True ...

  6. C语言---写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串

    题目: 写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串. #include <string.h> #include <stdio.h> void left_re ...

  7. Java:判断一个字符串中是否存在另一个字符子串以及判断一个字符串中是否存在指定字符

    Java:判断一个字符串中包含指定字符子串,判断一个字符串中存在指定字符 字符串的contains方法可以判断一个字符串中是否存在另一个字符子串,示例如下 String Str = "Hel ...

  8. AJPFX实列判断一个字符串是不是对称字符串

    import java.util.Scanner; /** 判断一个字符串是否是对称字符串 */ public class StringDemo { public static void main(S ...

  9. 如何判断一个字符串在JavaScript中是否包含某个字符?

    本文翻译自:How to tell if a string contains a certain character in JavaScript? I have a page with a textb ...

  10. python判断一个或者多个字符串,是否出现在一段话中

    python判断一个或者多个字符串,是否出现在一段话中 要判断一段话中是否有几个字符串,只要一个出现就为True,刚开始想用map函数,后来发现也挺麻烦. 查了一些资料,发现用 any比较好 比如 p ...

最新文章

  1. [百万级]通用存储过程.分页存储过程
  2. CF1006E Military Problem
  3. 机器人车间气管_汽车消声器生产中的焊接机器人应用与工艺流程
  4. python基础语法手册format-python的格式化输出(format,%)实例详解
  5. ubuntu下tesseract 4.0安装及参数使用
  6. buu old-fashion
  7. Android基础_1 四大基本组件介绍与生命周期
  8. 内购订单进行二次处理_独家独到飞豹FBA亚马逊退货处理,实现二次销售不是问题...
  9. PostMessage与SendMessage
  10. wp7技术类网站汇总
  11. OpenCV:实现灰度直方图和单通道直方图拉伸
  12. mysql函数和索引冲突问题_Mysql索引常见问题汇总
  13. 上岸 1 年后,重回大厂内卷
  14. 机器学习之层次聚类(hierarchical clustering)
  15. DB2遇到这样一个问题 。 ‘’Operation not allowed for reason code 7 on table DB2ADMIN.XXX. SQLSTATE=5701‘’
  16. Pandownload 开发者被抓了,但是其背后,百度难道不需要反思吗?
  17. 用LoopBack接口配置EBGP邻居
  18. 写作真的可以赚钱吗?
  19. MySQL的文本导入load data local
  20. element ui el-table 无数据时显示默认空图片(el-empty)

热门文章

  1. 【工控老马】OPC通讯协议解析-OPC七问
  2. 拯救阿拉德大陆--竞码编程H-20‘
  3. winapi消息大全
  4. 帮你举例说明什么是Python鸭子类型
  5. 2017.3.5阿凡python简单爬虫尝试,奉献源码
  6. 梦三国解析服务器spl文件头失败解决,梦三国手游|深度解析“伪法师”张角:“不容忽视的战场杀器”...
  7. 【咸鱼教程】TextureMerger1.6.6 一:Egret MovieClip的制作和使用
  8. opencv 将视频流转换成帧图像(支持asf,mp4,avi)
  9. oracle revoke 列_oracle受权与回收权限grant和revoke
  10. 致敬柳传志三网合一的佳沃品牌之路