n개의 문자를 포함하는 소문자 문자열 S가 있다고 가정합니다. 비어 있지 않은 두 개를 찾아야 합니다. −
P와 Q가 모두 S
각 인덱스 i에 대해 S[i]는 P와 Q 중 하나에만 속하는 부분 문자열 P와 Q입니다.
P는 사전순으로 최대한 작습니다.
입력이 S = "thelightsaber"인 경우 빨간색 2개가 필요하므로 출력은 10이 됩니다.
노트북, 녹색 노트 3개, 파란색 노트 5개.
이 문제를 해결하기 위해 다음 단계를 따릅니다.
c := S sort the array c a := position of (c[0]) in S delete c from S print c[0] and S
더 나은 이해를 위해 아래 구현을 살펴보겠습니다. −
#include <bits/stdc++.h> using namespace std; void solve(string S){ string c = S; sort(c.begin(), c.end()); int a = S.find(c[0]); S.erase(S.begin() + a); cout << c[0] << ", " << S << endl; } int main(){ string S = "thelightsaber"; solve(S); }
"thelightsaber"
a, thelightsber
위 내용은 최소 하위 문자열이 있는 두 하위 문자열을 찾는 C++ 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!