이 문제에서는 문자와 알파벳만으로 구성된 문자열 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