n자리의 문자열 S가 있다고 가정합니다. 정확히 11자리의 숫자가 '8'로 시작하면 전화번호입니다. 한 번의 작업으로 S에서 한 자리 숫자를 제거할 수 있습니다. 문자열을 유효한 전화번호로 만들 수 있는지 여부를 확인해야 합니다.
따라서 입력이 S ="5818005553985"와 같으면 출력은 True가 됩니다. 왜냐하면 11개의 문자로 "8005553985" 문자열을 만들 수 있고 첫 번째 숫자는 8이기 때문입니다.
단계
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
m := size of S insert '8' at the end of S if if location of 8 <= (m - 11), then: return true return false
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
#include <bits/stdc++.h> using namespace std; bool solve(string S){ int m = S.size(); S.push_back('8'); if ((int(S.find('8')) <= (m - 11))) return true; return false; } int main(){ string S = "5818005553985"; cout << solve(S) << endl; }
입력
"5818005553985"
출력
1