原题原题,12月27日的原题
OD统一考试(C卷)分值: 100分题解: Java / Python / C++题目描述给你一个字符串 s,字符串s首尾相连成一个环形,请你在环中找出字符o出现了偶数次最长子字符串的长度。输入描述输入是一串小写字母组成的字符串输出描述输出是一个整数示例1输入alolobo输出6说明最长子字符串之一是“alolob”,它包含'o'2个示例2输入looxdox输出7说明最长子字符串是"oxdolxl",由于是首尾连接在一起的,所以最后一个'x'和开头的'l'是连接在一起的,此字符串包含2个o。示例3输入bcbcbc输出6说明这个示例中,字符串“bcbcbc”本身就是最长的,因为o'都出现了0次题解这是一个字符串处理问题,需要找出一个环形字符串中字符出现偶数次最长子字符串的长度。思路首先统计字符串中字符'o'的出现次数。如果字符'o'的出现次数是偶数,那么最长子字符串的长度就是整个字符串的长度。如果字符'o'的出现次数是奇数,那么最长子字符串的长度就是整个字符串长度减1。C++#include <iostream>using namespace std;int main(){    string s;    cin >> s;    int cnt = 0;    for(char c : s) if(c == 'o') cnt++;    int rs = (cnt % 2 == 0) ? s.length() : s.length() - 1;    cout << rs << endl;    return 0;}Javaimport java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner in = new Scanner(System.in);        String s = in.nextLine();        int cnt = 0;        for (char c : s.toCharArray()) if (c == 'o') cnt++;        int rs = (cnt % 2 == 0) ? s.length() : s.length() - 1;        System.out.println(rs);    }}Pythonfrom collections import Counters = input()cnt = Counter(s)print((len(s) if cnt['o'] % 2 == 0 else len(s) - 1))🙏整理题解不易, 如果有帮助到您,请给点个赞 ‍❤️‍ 和收藏 ⭐,让更多的人看到。🙏🙏🙏
点赞 9
评论 4
全部评论

相关推荐

07-17 11:27
门头沟学院 Java
点赞 评论 收藏
分享
07-14 12:29
门头沟学院 Java
后端岗,实习三周感觉有点想跑路了,担心秋招被拉黑,有没有佬是字节HR知道情况的
从零开始的转码生活:你实习三周都想跑路,将来拿到offer真的愿意在这干十几二十年吗
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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