欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

C++ 笔试练习笔记 [1]:查找字符串中最长的连续数字字符串 OR59

最编程 2024-04-28 07:04:10
...

请添加图片描述

文章目录

  • OR59 字符串中找出连续最长的数字串
    • 题目思路分析
    • 实现代码

注:本次练习题目出自牛客网

OR59 字符串中找出连续最长的数字串

在这里插入图片描述

题目思路分析

首先想到的是用双指针模拟,进行检索比较输出
以示例1为例:

1.首先i遍历str直到遍历到数字(如①所示)
在这里插入图片描述

2.将j的位置和i一样,之后j进行遍历直到字母,这时就找到了第一个数字串(如②所示)
在这里插入图片描述

3.将i和j同步再重复1. 2. 进行遍历(如③ ④ ⑤)由于第二次len=3<第一次len=5,题中要求最长数字串所以不更新len
在这里插入图片描述

4.之后(如⑥所示)长度比我们记录的长所以更新我们记录的数字串的起始位置和数字串长度
在这里插入图片描述

5.直到i走到字符串的结尾

实现代码

#include <iostream>
#include <string>
using namespace std;

int main()
{
	string str;
	cin >> str;

	int begin = 0, len = 0;
	for (int i = 0; i < str.size(); i++)
	{
		if (str[i] >= '0' && str[i] <= '9')//当i遍历时遇到数字时进入判断
		{
			int j = i;
			while (j < str.size() && str[j] >= '0'&& str[j] <= '9') j++;//进行遍历数字串
			if (j - i>len)//判断长度知否是最长,进行判断更新
			{
				begin = i;
				len = j - i;
			}
			i = j;//将i更新到j以便继续比遍历
		}
	}

	cout << str.substr(begin, len) << endl;
	return 0;
}

那么恭喜你
在这里插入图片描述
点赞,收藏,关注