在C ++中查找字符串中最长的数字
在这个问题中,我们得到的字符串str仅包含字符和字母。我们的任务是在字符串中找到最长的数字。
问题描述: 我们需要找到数字的长度,即字符串中连续的数字字符。
让我们举个例子来了解这个问题,
输入: str =“ code001tutorials34124point”
输出: 34124
解释:
字符串中的数字是
001-尺寸3
34124-尺寸5
解决方法
解决此问题的简单方法是遍历字符串并找到数字的长度和起始索引。我们将为字符串中的每个数字存储字符串的起始位置和字符数。最后,返回数字。
该程序说明了我们解决方案的工作原理,
示例
#include <iostream>输出结果using namespace std;
string findLongestNumber(string str, int l) {
int count = 0, max = 0, maxLenPos = -1, currPos, currLen, maxLen = 0;
for (int i = 0; i < l; i++) {
currPos = maxLenPos;
currLen = maxLen;
count = 0;
maxLen = 0;
if (isdigit(str[i]))
maxLenPos = i;
while (isdigit(str[i])) {
count++;
i++;
maxLen++;
}
if (count > max) {
max = count;
}
else {
maxLenPos = currPos;
maxLen = currLen;
}
}
return (str.substr(maxLenPos, maxLen));
}
int main() {
string str = "code001tutorials34124point";
int l = str.length();
cout<<"字符串中最长的数字是 "<<findLongestNumber(str, l);
return 0;
}
字符串中最长的数字是 34124
以上是 在C ++中查找字符串中最长的数字 的全部内容, 来源链接: utcz.com/z/340180.html