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