Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

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<<"The longest length number in string is "<<findLongestNumber(str, l);
   return 0;
}

출력

The longest length number in string is 34124