免费网站备,wordpress翻译教程,辽宁建设工程信息网官方网站,可以发外链的平台前言 工作了十几年#xff0c;从普通的研发工程师一路成长为研发经理、研发总监。临近40岁#xff0c;本想辞职后换一个相对稳定的工作环境一直干到老, 没想到离职后三个多月了还没找到工作#xff0c;愁肠百结。为了让自己有点事情做#xff0c;也算提高一下自己的编程能力… 前言 工作了十几年从普通的研发工程师一路成长为研发经理、研发总监。临近40岁本想辞职后换一个相对稳定的工作环境一直干到老, 没想到离职后三个多月了还没找到工作愁肠百结。为了让自己有点事情做也算提高一下自己的编程能力无聊之余打算用一些大厂的编程题练练手。希望通过这些分享能够帮到一些人也希望能和看到此文的大神们沟通交流提升自己更希望在此期间能够找到一份理想的工作。
题目描述 给你一个字符串 s字符串s首尾相连成一个环形 请你在环中找出l、o、x 字符都恰好出现了偶数次最长子字符串的长度。
输入 输入是一串小写的字母组成的字符串s。
1 s.length 5 x 10^5s 只包含小写英文字母。
输出 输出是一个整数
示例
示例1 输入 alolobo输出 6 说明 最长子字符串之一是 alolob它包含 lo各 2 个以及 0 个 x 。 示例2 输入 looxdolx输出 7 说明 最长子字符串是 oxdolxl由于是首尾连接在一起的所以最后一个 x 和开头的 l是连接在一起的此字符串包含 2 个o 。 示例3 输入 bcbcbc输出 6 说明 这个示例中字符串 bcbcbc 本身就是最长的因为 o 都出现了 0 次。 解题思路 循环每一次将第一个字符放到最后组成一个新的字符串进行查找
题解
Java实现
package huawei.e100;import java.util.Scanner;/**
* author arnold
* date 2024年12月24日
* 最长子字符串的长度二
*/
public class T39_ZuiChangZiChuan {public static void main(String[] args) {Scanner sc new Scanner(System.in);while(sc.hasNext()) {String str sc.nextLine();int maxLen run(str);System.out.println(maxLen);}}// 循环每一次将第一个字符放到最后组成一个新的字符串进行查找static int run(String str) {int maxLen getMaxLen(str);for (int i 1; i str.length(); i) {str str.substring(1) str.substring(0,1);int len getMaxLen(str);maxLen Math.max(maxLen, len);}return maxLen;}static int getMaxLen(String s) {int maxLen 0;int l_num 0;int o_num 0;int x_num 0;for (int i 0; i s.length(); i) {if(s.charAt(i) l) {l_num;} else if (s.charAt(i) o) {o_num;} else if (s.charAt(i) x) {x_num;}if(l_num % 2 0 o_num % 2 0 x_num % 2 0) {maxLen Math.max(maxLen, i1);}}return maxLen;}}