C++ 工程师养成 每日一题4.5 (迭代器遍历)
首先说明,当每日一题标号不是整数时代表此题是较为简单的,我在这里整理一遍主要是我做错了(没错是我太菜各位大佬无视就好)
题目:
读入一个字符串str,输出字符串str中的连续最长的数字串

此题思路清晰下面给出我自己的解法:
我第一次做的正确答案时使用迭代器进行遍历完成的
#include<iostream>
#include<string>
using namespace std;
void FFind(string s){
auto it = s.begin();
string a,res;
while (it != s.end()){
if (*it >= && *it <= ){
a =a + *it;
}
else{
if (a.size() > res.size()){
res = a;
a.clear();
}
else{
a.clear();
}
}
it++;
}
if (a.size() > res.size()){ //因为取不到end()位置会引发程序崩溃,所以使用迭代器的话在遍历最后一个位置的时候就必须在循环外在此判断一次条件,不美观且降低了程序可读性
res = a;
}
cout << res;
}
int main(){
string s;
getline(cin, s);
FFind(s);
return ;
}
在写完之后我果断去找了其他大佬写的程序,才发现我这个人老把问题想得太麻烦!!
老是忘记string也可以使用[ ] 来取内容,这样遍历就不会造成无法判断最后一次循环(最后一个位置的下一个位置)
大佬答案如下:
#include<iostream>
using namespace std;
#include<string>
int main()
{
string s, res, cur;
cin >> s;
for (int i = ; i <= s.length(); i++)
{ if (s[i] >= '' && s[i] <= '') //使用 [ ] 符来取内容
{
cur += s[i];
}
else
{
// 找出更长的字符串,则更新字符串
if (res.size() < cur.size())
res = cur;
else
cur.clear();
}
}
cout << res;
return ;
}
菠菜~贱卖,菠菜!贱卖!!菠菜!!贱卖!!!菠 ‘ 菜 ’ !!!!
C++ 工程师养成 每日一题4.5 (迭代器遍历)的更多相关文章
- C++工程师养成 每日一题(string使用)
题目: 题目来源牛客网:https://www.nowcoder.com/practice/f0db4c36573d459cae44ac90b90c6212?tpId 输入两个字符串,从第一字符串中删 ...
- C++工程师养成 每日一题(vector使用)
题目: 链接:https://www.nowcoder.com/questionTerminal/6736cc3ffd1444a4a0057dee89be789b?orderByHotValue来源: ...
- C++ 工程师养成 每日一题fourth (reverse的使用)
题目: 将一句话的单词进行倒置,标点不倒置. 这道题最简单的解法是使用algorithm提供的reverse()函数 具体步骤我写在代码注释里面: #include <string> #i ...
- C++ 工程师养成 每日一题third (子数列排序)
题目: 定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的.牛牛有一个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数 ...
- [每日一题]ES6中为什么要使用Symbol?
关注「松宝写代码」,精选好文,每日面试题 加入我们一起学习,day day up 作者:saucxs | songEagle 来源:原创 一.前言 2020.12.23日刚立的flag,每日一题,题目 ...
- 「每日一题」面试官问你对Promise的理解?可能是需要你能手动实现各个特性
关注「松宝写代码」,精选好文,每日一题 加入我们一起学习,day day up 作者:saucxs | songEagle 来源:原创 一.前言 2020.12.23日刚立的flag,每日一题,题目类 ...
- 「每日一题」有人上次在dy面试,面试官问我:vue数据绑定的实现原理。你说我该如何回答?
关注「松宝写代码」,精选好文,每日一题 时间永远是自己的 每分每秒也都是为自己的将来铺垫和增值 作者:saucxs | songEagle 来源:原创 一.前言 文章首发在「松宝写代码」 2020. ...
- [每日一题]面试官问:Async/Await 如何通过同步的方式实现异步?
关注「松宝写代码」,精选好文,每日一题 时间永远是自己的 每分每秒也都是为自己的将来铺垫和增值 作者:saucxs | songEagle 一.前言 2020.12.23 日刚立的 flag,每日一 ...
- [每日一题]面试官问:for in和for of 的区别和原理?
关注「松宝写代码」,精选好文,每日一题 时间永远是自己的 每分每秒也都是为自己的将来铺垫和增值 作者:saucxs | songEagle 一.前言 2020.12.23 日刚立的 flag,每日一 ...
随机推荐
- 如何让SublimeText3更好用
有关如何让Sublime Text3更好用 序言 某天在网上看到对于SublimeText3的介绍:一款插件功能强大的编辑器 ... 如果没有插件的话根本就是个稍微有点快捷键.配色喜人的普通编辑器,跟 ...
- 读RAM时的时序风险
读RAM时的时序有两个风险:1.数据已经存储好,读所需的时间.2.数据同时更新,读所需的时间节点.对于前者,只要延时足够节拍就行.对于后者,还必须要考虑数据建立的时间,同样延时的准备可能会因为数据尚未 ...
- sharding jdbc(sphere) 3.1.0 spring boot配置
sharding jdbc 2.x系列详解参见https://www.cnblogs.com/zhjh256/p/9221634.html. 最近将sharding jdbc的配置从xml切换到了sp ...
- lastlogon
function Get-ADUserLastLogon($userName) { $dcs = Get-ADDomainController -Filter {Name -like "*& ...
- 取response里 Json格式的字段值
1.
- 微信小程序:用 Promise 解决方案代替回调地狱。 修复 this._invokeMethod is not a function 的问题
/** * 将回调地狱转换为 Promise 形式 * https://blog.csdn.net/SEAYEHIN/article/details/88663740 * raw: wx.downlo ...
- boot2docker
boot2docker 简介 boot2docker是解决非linux系统下运行Docker容器不方便的工具 官方介绍 Boot2Docker是在Windows操作系统上运行Docker的唯一方法,现 ...
- unix_timestamp 时间戳函数用法(hive)
pandas和SQL数据分析实战 https://study.163.com/course/courseMain.htm?courseId=1006383008&share=2&sha ...
- 阿里云OSS设置跨域访问 H5的时候
OSS 提供 HTML5 协议中的跨域资源共享 CORS 设置,帮助您实现跨域访问.当 OSS 收到一个跨域请求(或者 OPTIONS 请求)时,会读取存储空间对应的 CORS 规则,然后进行相应的权 ...
- 开源插件 :MahApps.Metro.IconPacks
详见英文版:https://github.com/MahApps/MahApps.Metro.IconPacks/wiki 源代码名称:MahApps.Metro.IconPacks 源代码网址:ht ...