首页 > 试题广场 >

两个子串

[编程题]两个子串
  • 热度指数:4986 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
给定一个字符串 s , 请计算输出含有连续两个 s 作为子串的最短字符串。 注意两个 s 可能有重叠部分。例如, "ababa" 含有两个 "aba".

数据范围:输入的字符串长度满足 ,且保证只含有小写英文字母

输入描述:
输入包括一个字符串s,字符串长度length(1 ≤ length ≤ 50),s中每个字符都是小写字母.


输出描述:
输出一个字符串,即含有连续两个s作为子串的最短字符串。
示例1

输入

abracadabra

输出

abracadabracadabra
示例2

输入

a

输出

aa
头像 牛客题解官
发表于 2020-06-05 18:22:00
题解 难度:简单 知识点:字符串 整道题主要考察的就是字符串的知识和一些字符串函数,整体思路比较简单。现提供两种算法思路来解决问题。解题思路:因为要求输出的字符串要含有两个输入的字符子串,并且要求是最短的,那肯定是重复的部分越多越好,这样整个字符串就会越短。所以越早发现重复部分,结果越短。 方法一: 展开全文
头像 laglangyue
发表于 2020-07-30 20:23:24
从后往前,枚举最长子串,一个低效率的做法直接substring比较equal(),最差情况是1+2+3+...+n-1=o(n^2)## import java.util.*; public class Main{ public static void main(String[] args) 展开全文
头像 小海兽
发表于 2022-04-29 10:27:15
import java.util.*; public class Main{ public static void main(String[]args){ Scanner sc=new Scanner(System.in); String input=sc.nextLine(); String ne 展开全文
头像 17c89
发表于 2024-04-03 12:41:47
import java.util.Scanner; /** * JD10 两个子串 * @author d3y1 */ public class Main { public static void main(String[] args){ Scanner in = n 展开全文