import java.util.Scanner;
//在一个字符中找到由同一个字符组成的连接的最长字符串,输出
public class Text {
public static void main(String[] args) {
//控制台输入
Scanner input=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String s=input.next();
int max=1; //最长有多长
char[] ch= s.toCharArray(); //将控制台输入的字符串拆开来,一个个的装到字符数组中
String[] len=new String[ch.length]; //将有相邻相等的字符拼接起来,装起来,只有一个也装
int [] index=new int[ch.length]; //与Sting数组匹配,对应下标相同的串字符的长度
int indexmax=0; //index数组中最大数字,即字符最长的数组下标
//循环ch数组
for(int i=0;i<ch.length;i++){
if(i==ch.length-1){ //长度若为1,则不必要下面判断了
len[i]=ch[i]+"";
index[i]=1;
break;
}else {
len[i]=ch[i]+""; //将此时下标的装进数组,准备拼接相同的
for(int j=i+1;j<ch.length;j++){
if(ch[i]==ch[j]){
len[i]+=ch[j]+""; //累加拼接
max++; //长度累加
}else{
break;
}
}
index[i]=max; //将长度记录下来
max=1; //重新记录,下一个字符
}
}
int maxlength=index[0]; //长度数组中的第一个设置为最长
if(index.length>1){
for(int m=1;m<index.length;m++){
if(index[m]>maxlength){
maxlength=index[m]; //若下一个比前一个大,则设置此时的为最长的
indexmax=m; //记录此时下标
}
}
}
System.out.println("最长的一串相等字符串为:"+len[indexmax]+" 长度为:"+index[indexmax]);
}
}
分享到:
相关推荐
"在字符串中找出连续最长的数字串并输出最长的字符串长度"这个问题是字符串处理中的一个经典实例,它涉及到字符串遍历、模式匹配和动态规划等概念。 首先,我们需要理解问题的核心:在给定的字符串中寻找连续的数字...
在编程竞赛(OJ)中,"在字符串中找出连续最长的数字串"是一道典型的字符串处理问题。它要求我们从一个给定的字符串中找到最长的一段连续的数字序列。这个问题涉及到字符串遍历、字符判断以及动态规划或滑动窗口等...
滑动窗口是解决字符串问题的常用技巧,它可以有效地处理寻找子串的问题。我们可以通过两个指针,一个代表窗口的起始位置(左指针),另一个代表窗口的结束位置(右指针)。我们可以维护一个记录当前子串的哈希值,当...
把两个源字符串分别放在两个文本文件里,再把这两个文本文件放在程序所在目录下,运行时输入两个文件名就可以了.
java输出5个字符串中最长的字符串.
在随意给出的2个字符串中,找出它们共同的最长的子串。 【输入】 输入文件的第一行为一个整数2,接下来有2行,每行为一个字符串,每个字符串的长度均小于255。 【输出】 输出只有一行,即:共同的最长子串,若有多个...
滑动窗口是处理字符串问题的一种常见技巧。可以设定两个指针,分别代表窗口的开始和结束,通过移动指针来调整窗口大小,从而找到最长的重复子串。每次移动指针时,检查当前窗口内的子串是否已经出现过,如果出现过...
4. 如果当前字符串的长度超过了已知的最长字符串,我们就更新我们记录的最长字符串。 5. 遍历所有字符串后,记录的最长字符串即为我们要找的答案。 使用这个方法,我们能够在O(n)的时间复杂度内解决问题,其中n是...
接着,我们要解决的最大问题是找出输入字符串中的最长回文子串。这个问题可以通过动态规划(Dynamic Programming, DP)来解决。动态规划是一种将大问题分解为小问题并逐个解决的策略。对于回文子串,我们可以创建一...
这个问题的目标是找出给定字符串中的最长子串,这个子串中的所有字符都不重复。这是一个在编程面试和算法竞赛中常见的问题,尤其与动态规划、滑动窗口和哈希映射等技术有关。 描述 "在字符串中找到最长的不包含重复...
本主题将深入探讨如何使用C++语言来实现一个算法,该算法能够找出两个字符串中的最大公共子串。公共子串是指同时存在于两个或多个字符串中的任意非空字符序列。在本问题中,我们目标是找到最长的这样一个子串。 ...
剑指offer.48
编写程序求出所给出的字符串中最长的字母子串(以非字母隔开)。例如字符串"Apple$12pear watermelon $ # Banana"中最长的字母子串为"watermelon"。有详细的解释
### 在字符串中查找最长重复子串的探讨 #### 背景与问题定义 本篇文章主要探讨了如何在...综上所述,通过上述方法,我们能够在给定的字符串中有效地找到最长的重复子串,这为解决实际问题提供了一种可行的技术方案。
找出一个字符串的最长子串,很简单.......
本文实例讲述了C语言求两个字符串的最长公共子串的方法。分享给大家供大家参考。具体实现方法如下: #include "stdio.h" #include "string.h" #include "stdlib.h" void getCommon(char str1[],char str2[],char * ...
标题中的“求字符串的最长平台”实际上是指寻找一个数组中具有相同值的连续子序列的最大长度,这在数据结构和算法领域中是一个常见的问题。在C语言编程中,这个问题可以通过遍历数组并比较相邻元素来解决。从给出的...
- **目标**:找出这两个字符串的最长公共子串。 #### 2. 算法步骤 该算法的核心思想是通过双重循环遍历两个字符串,逐个字符进行比较,以找到最长的匹配子串。 - **初始化**:首先设置两个指针`flag1`和`flag2`,...
总结起来,解决最长公共子字符串问题的关键在于理解动态规划思想,构建正确的状态转移方程,并能正确地回溯以找出具体的子序列。在C语言中实现这一算法需要良好的编程基础和对字符串处理的熟练掌握。
% 找出最长的字符串长度 maxLength = max(lengths); % 显示结果 disp('字符串数组:'); disp(strArray); disp('每个字符串的长度:'); disp(lengths); disp('最长的字符串长度为:'); disp(maxLength); ``` #### ...