最长子字符串的长度(一)

题目描述:

给你一个字符串 s,字符串s首尾相连成一个环形 ,请你在环中找出 'o' 字符出现了偶数次最长子字符串的长度。

输入描述:

输入是一串小写字母组成的字符串

输出描述:

输出是一个整数

补充说明:

1 <= s.length <= 5 x 10^5

s 只包含小写英文字母。

示例1

输入:

alolobo

输出:

6 说明:

最长子字符串之一是 "alolob",它包含'o' 2个。

示例2

输入:

looxdolx

输出:

7

说明:

最长子字符串是 "oxdolxl",由于是首尾连接在一起的,所以最后一个 'x' 和开头的 'l'是连接在一起的,此字符串包含 2 个'o' 。

示例3

输入:

bcbcbc

输出:

6 说明:

这个示例中,字符串 "bcbcbc" 本身就是最长的,因为 'o' 都出现了 0 次。

题解

如果出现 偶数个 o 则为 s.length 如果出现 奇数个 o 则去掉一个后 o 的数量为偶数 长度为 s.length - 1

源码 java

public class LongestSubString {
	static Input input ;
	static {
		input = new Input("alolobo\n" +
				"looxdolx\n" +
				"bcbcbc");
	}

	public static void main(String[] args) {

		maxSubstring(input.nextLine());
		maxSubstring(input.nextLine());
		maxSubstring(input.nextLine());
	}

	private static void maxSubstring(String s) {
		int count = 0;
		for (int i = 0; i < s.length(); i++) {
			if (s.charAt(i) == 'o') {
				count++;
			}
		}
		if (count % 2 == 0) {
			System.out.println(s.length());
		} else {
			System.out.println(s.length() - 1);
		}
	}
}
#如果再来一次,你还会选择这个工作吗?#
全部评论

相关推荐

ResourceUt...:你是我见过最美的牛客女孩
晒一下我的毕业照
点赞 评论 收藏
分享
05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务