当前位置: 首页 > news >正文

3593 蓝桥杯 查找最大元素 简单

 3593 蓝桥杯 查找最大元素 简单

// C风格解法1,通过率100%,多组数据处理样式//str = "abcdefgfedcba"
//abcdefg(max)fedcba//str = "xxxxx"
//x(max)x(max)x(max)x(max)x(max)#include<bits/stdc++.h>const int N = 1e2 + 10;char str[N];void solve(){scanf("%s", str); // 读入字符串 strint n = (int) strlen(str); // strlen(str) 求从 str 这个地址出发到下一个 '\0' 的位置所经过的长度,// 实际上可以理解为字符串长度,O(|str|)char mx = 0; // 去求最大字母for(int i = 0; i < n; i++){mx = std::max(mx, str[i]); // 循环求最大字母} for(int i = 0; i < n; i++){printf("%c", str[i]);if(str[i] == mx){ // 每当遇到最大字母时,立刻输出(max)printf("%s","(max)");}  }printf("\n");   
}int main(){int T;    scanf("%d", &T); // 输入测试组数while(T--){ // while(T > 0){T--;...}solve();}return 0;
}

C语言 strlen 函数用来求字符串的长度(包含多少个字符)。

strlen() 函数从字符串的开头位置依次向后计数,直到遇见 '\0',然后返回计时器的值。最终统计的字符串长度不包括 '\0'。

头文件:string.h

char str[] = "http://c.biancheng.net";

运行结果为:
sizeof = 23
strlen = 22

sizeof 统计出的字符串长度比 strlen() 函数的统计值大 1。因为 sizeof 统计了字符串结尾的 '\0',而 strlen() 函数没有。

但是,sizeof 和 strlen() 函数的功能并不相同,strlen() 函数才是专门用来统计字符串长度,而 sizeof 不是。

// C++风格解法2,通过率100%,多组数据处理样式//str = "abcdefgfedcba"
//abcdefg(max)fedcba//str = "xxxxx"
//x(max)x(max)x(max)x(max)x(max)#include<bits/stdc++.h>void solve(){std::string s;    std::cin >> s; // 不建议使用getline,建议使用cin//getline 一般会把第一行剩余的换行符等信息读入,导致少读一次int n = (int) s.size(); // O(1) char mx = 0; // 求最大字母for(int i = 0; i < n; i++){mx = std::max(mx, s[i]); // 循环求最大字母} for(int i = 0; i < n; i++){std::cout << s[i];if(s[i] == mx){ // 每当遇到最大字母,输出(max)std::cout << "(max)";}  }std::cout << "\n";   
}int main(){std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cout.tie(nullptr);int T;    std::cin >> T; // 输入测试组数while(T--){ // while(T > 0){T--;...}solve();}return 0;
}

// 使用getline
/*
2
ab
c
2'\n'ab'\n'c'\n'
*/
// std::cin >> T,此时T = 2,输入为'\n'ab'\n'c'\n'                getline()遇到'\n'终止输入
// 第一个 getline(std::cin, s) ,s = "",剩余输入为 ab'\n'c'\n'
// 第二个 getline(std::cin, s) ,s ="ab",剩余输入为 c'\n'

reference:

C语言strlen()函数:求字符串的长度


char字符对应ASCII码表0-255(全)_char字符对应的ascii码值-CSDN博客
 

相关文章:

  • Leetcode—42. 接雨水【困难】
  • 项目02《游戏-08-开发》Unity3D
  • HarmonyOS鸿蒙ArkTS证件照生成模板(适合二次开发,全套源码版)
  • 面试复盘6——后端开发
  • 进程控制(Linux)
  • 【蓝桥杯冲冲冲】[NOIP2003 普及组] 栈
  • C++ 语法文件
  • 【Golang】exec.command命令日志输出示例
  • Linux常见面试题汇总
  • Java学习七、类和对象
  • AJAX-URL查询参数
  • 【机器学习】基于K-近邻的车牌号识别
  • spring boot bean的生命周期
  • 【高质量精品】2024美赛B题22页word版高质量半成品论文+多版保奖思路+数据+前四问思路代码等(后续会更新)
  • 杨中科 ASP.NETCORE 高级14 SignalR
  • Angular Elements 及其运作原理
  • Centos6.8 使用rpm安装mysql5.7
  • CODING 缺陷管理功能正式开始公测
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • gcc介绍及安装
  • Git初体验
  • HTTP中GET与POST的区别 99%的错误认识
  • in typeof instanceof ===这些运算符有什么作用
  • JAVA 学习IO流
  • MySQL数据库运维之数据恢复
  • MySQL用户中的%到底包不包括localhost?
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • Terraform入门 - 1. 安装Terraform
  • vue-cli在webpack的配置文件探究
  • 从输入URL到页面加载发生了什么
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 解析带emoji和链接的聊天系统消息
  • 来,膜拜下android roadmap,强大的执行力
  • 蓝海存储开关机注意事项总结
  • 目录与文件属性:编写ls
  • 区块链共识机制优缺点对比都是什么
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 详解移动APP与web APP的区别
  • 协程
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • Java数据解析之JSON
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #前后端分离# 头条发布系统
  • (LeetCode C++)盛最多水的容器
  • (zhuan) 一些RL的文献(及笔记)
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (原)本想说脏话,奈何已放下