在一个由小写英文字母(a-z)组成的字符串中,查找最长子串,其头尾字母相同,且中间不包含该头尾字母,并输出最左边的该类子串

简介: 在一个由小写英文字母(a-z)组成的字符串中,查找最长子串,其头尾字母相同,且中间不包含该头尾字母,并输出最左边的该类子串

输入:

①adfasjdoiasldhlfa

②a

③aa

④abcd

输出:

①fasjdoiasldhlf

②a

③aa

④a


import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.next();
        String subStr = "";
        for (int i = 0; i < str.length(); i++) {
            String newSubStr = str.charAt(i) + "";
            for (int j = i+1; j < str.length(); j++) {
                if (j == str.length() - 1 && str.charAt(i) != str.charAt(j)){
                    newSubStr = str.charAt(i) + "";
                    break;
                }
                if (str.charAt(i) == str.charAt(j)){
                    newSubStr = str.substring(i,j+1);
                    break;
                }
                newSubStr = str.substring(i,j+1);
            }
            if (newSubStr.length() > subStr.length()){
                subStr = newSubStr;
            }
        }
        System.out.println(subStr);
    }
}


相关文章
|
索引
【LeetCode】917. 仅仅反转字母、387. 字符串中的第一个唯一字符
目录 917. 仅仅反转字母 387. 字符串中的第一个唯一字符
48 0
题目:分别统计字符串中大写字母和小写字母的个数。
题目:分别统计字符串中大写字母和小写字母的个数。
字符串转数组、数组转字符串、给第一个单词色值
字符串转数组、数组转字符串、给第一个单词色值
|
存储
练习>>代码实现将一个字符串中的小写字母变为大写
练习>>代码实现将一个字符串中的小写字母变为大写
61 0
C 去除字符串中重复字母(LeetCode)
摆烂太久,好久没有更文了,小九和大家一起看看题写写题找回手感吧,也希望这篇文章可以帮助正在寻找解题答案的朋友,你们的支持就是我最大的动力!求三连!求关注呀!🌟。
C  去除字符串中重复字母(LeetCode)
求字符串中大小写字母个数及其他符号个数!
求字符串中大小写字母个数及其他符号个数!
61 0
判断字符串首个字母是否大写,若大写,则输出该字符串中大写字母的个数 并打印。
判断字符串首个字母是否大写,若大写,则输出该字符串中大写字母的个数 并打印。
164 0
|
算法 索引
字符串中的第一个唯一字符&&有效的字母异位词(多思路)
字符串中的第一个唯一字符&&有效的字母异位词(多思路)
125 0
字符串中的第一个唯一字符&&有效的字母异位词(多思路)
|
存储 算法
算法:编程在一个已知的字符串中查找最长单词,假定字符串中只包含字母和空格,空格用来分隔不同单词
算法:编程在一个已知的字符串中查找最长单词,假定字符串中只包含字母和空格,空格用来分隔不同单词
判断字符串中只含有字母和问题
判断字符串中只含有字母和问题
73 0