点赞(0)
 

0.0分

4 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 6 条评论

BUG写手 3年前 回复TA
//解决方案:巧用API,字符串分割函数split
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		String s = in.next();
		for(int i = 1; i <= s.length(); i++)
		{
			String[] ss = s.split(s.substring(0, i));	//s.split(String a), 将字符串s按照a来分隔,字符串中的s会被消除,其他字符则会被保留
			if(ss.length == 0)	//所以此时如果分隔后得到的数组为0,则代表该字符串全部由这种子串组成
			{
				System.out.println(s.length() / i);
				return;
			}
		}
		
		in.close();
	}
BUG写手 3年前 回复TA
@BUG写手 你这个方法还是很顶的,我这边有个思路和你的很像,不过用的是split而不是replace
BUG写手 3年前 回复TA
@BUG写手 比如输入abcd,按照题意就应该输出1,只能截出一段
BUG写手 3年前 回复TA
emmm,那个啥,for循环是不是应该写成 for (int i = 1; i <= number.length(); i++),毕竟substring(0, i)截取的结果不包含第i位,如果像参考代码里这样写的话,只能截取一段的那种貌似就没有输出了,你可以测试一下看看。OJ的测试数据里可能没有这种
龚秋志 4年前 回复TA
不愧是你
王玉辰 4年前 回复TA
太顶了