题目描述
给你一个字符串 s,首尾相连成一个环形,请你在环中找出 'o' 字符出现了偶数次最长子字符串的长度。
输入描述
输入是一个小写字母组成的字符串
输出描述
输出是一个整数
备注
1 ≤ s.length ≤ 500000
s 只包含小写英文字母
用例1
输入
alolobo
输出
6
说明
最长子字符串之一是 "alolob",它包含2个'o'
用例2
输入
looxdolx
输出
7
说明
最长子字符串之一是 "oxdolxl",它包含2个'o'。
因为字符串首尾相连
用例3
输入
abcdefg
输出
7
考点
逻辑思维
代码
python
str=input()
cnt=0 #统计‘o'的个数
res=len(str)
for i in str:
if i=='o':
cnt+=1
if cnt%2!=0:
res=res-1
print(res)
java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(getResult(sc.nextLine()));
}
public static int getResult(String s) {
int n = s.length();
// 'o'的个数
int zeroCount = 0;
for (int i = 0; i < n; i++) {
if (s.charAt(i) == 'o') zeroCount++;
}
if (zeroCount % 2 == 0) {
return n;
} else {
return n - 1;
}
}
}