在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

回到顶部