环中最长子串/字符成环找偶数O

文章目录

  • 题目描述
  • 输入描述
  • 输出描述
  • 示例1
    • 说明:
  • 示例2
    • 说明:
  • 说明:
  • 代码
  • 注意:printf中的%c 、%s

题目描述

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

给你一个字符串 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 次。

代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>int main() {char input[500001]; // 创建一个字符数组,用于存储用户输入的字符串,最大长度500000fgets(input, sizeof(input) - 1, stdin); // aloloboinput[strcspn(input, "\n")] = '\0';     // 移除可能存在的换行符int len = strlen(input); // 获取字符串的长度int num = 0;             // 初始化'o'字符的计数器// char *str = malloc(len * 2 + 1); // 动态分配内存// strcpy(str, input);// strcat(str, input);// // printf("%s", str); // aloloboalolobo// // 遍历字符串,统计 'o' 字符的数量// for (int i = 0; i < len * 2; i++) {//     for (int j = i; j < i + len; j++) {//         if (input[j] == 'o') {//             num++;//         }//     }// }// 遍历字符串,统计'o'字符的数量for (int i = 0; i < len; i++) {if (input[i] == 'o') {num++;}}if (num % 2 == 0) {printf("%d", len);} else {printf("%d", len - 1);}return 0;
}

注意:printf中的%c 、%s

在C语言中,printf()函数的格式说明符对于输出字符和字符串有不同的含义:

  1. %c:用于输出单个字符。例如:

    printf("%c", str[i]);
    

    这行代码会逐个输出字符串 str 中每个位置(索引为 i)的字符。

  2. %s:用于输出整个字符串。例如:

    printf("%s", str);
    

    如果你想通过 %s 输出一个字符串,你需要传入字符串的首地址,而不是单个字符的位置。
    如果你想循环打印出字符串中的每一个字符,则应该使用 %c

for (int i = 0; i < len * 2; i++) {printf("%c", str[i]);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/688403.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Rust CallBack的几种写法

模拟常用的几种函数调用CallBack的写法。测试调用都放在函数t6_call_back_task中。我正在学习Rust&#xff0c;有不对或者欠缺的地方&#xff0c;欢迎交流指正 type Callback std::sync::Arc<dyn Fn() Send Sync>; type CallbackReturnVal std::sync::Arc<dyn Fn…

第1章 计算机系统概述(2)

1.4操作系统结构 随着操作系统功能的不断增多和代码规模的不断变大,合理的操作系统结构,对于降低操作系统复杂度,提升操作系统安全与可靠性来说变得尤为重要。 分层法: 优点: 1.便于系统调试和验证,简化系统的设计和实现 2.易于扩充和维护 缺点: 1.合理定义各层较难(依赖关系比…

python语言常见面试题:什么是Python中的生成器(Generators)?它们与迭代器有什么不同?

在Python中&#xff0c;生成器和迭代器都是用于处理可迭代对象&#xff08;iterable&#xff09;的重要工具&#xff0c;它们允许我们按需生成或访问元素&#xff0c;而不是一次性加载整个数据结构到内存中。这在处理大量数据时特别有用&#xff0c;因为它可以节省内存并提高性…

2024.2.18

使用fgets统计给定文件的行数 #include<stdio.h> #include<string.h> int main(int argc, const char *argv[]) {FILE *fpNULL;if((fpfopen("./test.txt","w"))NULL){perror("open err");return -1;}fputc(h,fp);fputc(\n,fp);fput…

算法练习-赎金信(思路+流程图+代码)

难度参考 难度&#xff1a;中等 分类&#xff1a;哈希表 难度与分类由我所参与的培训课程提供&#xff0c;但需要注意的是&#xff0c;难度与分类仅供参考。且所在课程未提供测试平台&#xff0c;故实现代码主要为自行测试的那种&#xff0c;以下内容均为个人笔记&#xff0c;旨…

数智化转型|两大电网、五大发电2024年重点工作路线图!

2024年1月&#xff0c;两大电网、五大发电集团陆续召开2024年工作会议&#xff0c;明确了2024年工作目标及重点路线图。从工作会议内容来看&#xff0c;不难发现&#xff0c;加快推动数智化转型&#xff0c;建设新型电力系统成为几大集团未来共同发展目标。会议内容如下&#x…

大数据,对于生活的改变

谷歌通过对于疾病的查询量可以预测一个个h1n1病毒的大爆发&#xff0c; 大数据时代对于人的考验 用户的搜索记录就是一种信息&#xff0c;这种信息会满足其基础相关的词条与其有关的词条&#xff08;最为原始的搜索机制&#xff0c;国内的搜索引擎都是采用这种基础原理。&…

从源代码安装 rocSOLVER 并 调试 rocSOLVER 在 Ubuntu 22.04 平台

0, 下载并编译 rocBLAS 的调试版本 sudo apt install python3.10-venv sudo apt install libmsgpack-dev sudo pip install joblibgit clone --recursive https://github.com/ROCm/rocBLAS.git $ cd rocBLAS/ $ ./install.sh -i -g构建时间也不短 1&#xff0c;下载并编译 roc…

【数据结构与算法】手搓JDK底层ArrayList底层 - 动态数组

数组 在介绍数组之前&#xff0c;我们先来看一段chatGPT给出的对于数组描述&#xff1a; 数组&#xff08;Array&#xff09;是一种线性数据结构&#xff0c;它由一组连续的内存空间组成&#xff0c;用来存储相同类型的数据元素。数组具有固定的大小&#xff0c;一旦创建后&a…

分享几个丝滑oled代码

最近一段业余时间在捣鼓esp32&#xff0c;发现对于一个搞diy的来说&#xff0c;它的生态&#xff0c;不管是开发环境、氛围还是可玩度都是独一挡的&#xff0c;国内外基于此的扩展真是太多了&#xff0c;找了几个通过按键/旋钮进行0.96寸OLED控制的案例&#xff0c;超级丝滑&am…

SQL中的各种连接的区别总结

前言 今天主要的内容是要讲解SQL中关于Join、Inner Join、Left Join、Right Join、Full Join、On、 Where区别和用法&#xff0c;不用我说其实前面的这些基本SQL语法各位攻城狮基本上都用过。但是往往我们可能用的比较多的也就是左右连接和内连接了&#xff0c;而且对于许多初学…

JavaSE-02笔记【封装~this和static】

文章目录 1.封装&#xff08;掌握&#xff09;1.1 封装的理解1.2 不封装存在的问题1.3 怎么封装1.4 难点解惑1.5 练习 2. this 和 static2.1 this&#xff08;掌握&#xff09;2.1.1 this是什么2.1.2 this 在实例方法中使用2.1.3 this访问实例变量2.1.4 this扩展①2.1.5 this扩…

神秘网址ing

海拥 | 开发文档服务器 | Java、Python、前端学习资料 好玩的网址 加个社区吧 摸鱼社区

量子算法入门——3.狄拉克符号与量子态(2)

2. 光的极化和S-G实验 光的极化&#xff1a;表达出一方向电场的振动方式 S-G实验 银原子内部介绍 S-G实验过程 在炉子中将银原子高温灼烧&#xff0c;高温使得银原子具有极大的动能&#xff0c;从炉口向四周发射出来&#xff0c;炉口前设置两个小门构成两点一线&#xff…

python语言常见面试题:Python中的*args和**kwargs是什么?请给出使用它们的场景。

在Python中&#xff0c;*args和**kwargs是两种用于处理函数参数的特殊语法。它们允许你在函数定义中接收任意数量的参数&#xff0c;无论是位置参数还是关键字参数。 *args *args用于接收任意数量的位置参数&#xff0c;并将它们保存为一个元组&#xff08;tuple&#xff09;…

2024前端面试准备之HTML篇

全文链接 1. doctype的作用是什么 DOCTYPE是html5标准网页声明,且必须声明在HTML⽂档的第⼀⾏。来告知浏览器的解析器⽤什么⽂档标准解析这个⽂档,不同的渲染模式会影响到浏览器对于 CSS 代码甚⾄ JavaScript 脚本的解析 ⽂档解析类型有: BackCompat:怪异模式,浏览器使…

inline内联函数为什么不能是虚函数?

1. inline内联函数为什么不能是虚函数&#xff1f; 虚函数可以是内联函数&#xff0c;内联是可以修饰虚函数的&#xff0c;但是当虚函数表现多态性的时候不能内联。 理由如下&#xff1a;内联是在发生在编译期间&#xff0c;编译器会自主选择内联&#xff0c;而虚函数的多态性…

5.13 BCC工具之urandomread.py简介

一,工具简介 urandomread工具用于演示如何在内核跟踪点进行插桩。 二,代码示例 注意,该示例要求内核版本Linux 4.7+(并在内核编译选型中使能BPF_PROG_TYPE_TRACEPOINT)。 #!/usr/bin/pythonfrom __future__ import print_function from bcc import BPF from bcc.utils…

Centos7挂载磁盘

1 查看未挂载的磁盘 命令&#xff1a; fdisk -l红框圈中的即是本次要挂载的磁盘&#xff0c;/dev/vdb 与 /dev/vda 相比&#xff0c;其没有下方的 /dev/vda1 等信息&#xff0c;代表 /dev/vdb 磁盘并没有进行过分区操作&#xff0c;是一个新加的硬盘。 2 对新建的磁盘进行分…

基于SSM的宁夏旅游网站平台(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的宁夏旅游网站平台&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring …