n개의 소문자를 포함하는 문자열 S가 있다고 가정합니다. 문자열은 다음 규칙을 따르는 경우 엄격하게 알파벳 문자열입니다.
빈 문자열을 T
단계 i에서 라틴 문자를 제거합니다. 테이블의 i번째 소문자를 입력하고 문자열 T의 왼쪽 또는 문자열 T의 오른쪽(c는 라틴 알파벳의 i번째 문자)입니다.
S가 알파벳 문자열 순서로 엄격하게 정렬되어 있는지 확인해야 합니다.
이 문제를 해결하려면 문자열을 조작해야 합니다. 프로그래밍 언어의 문자열은 특정 배열과 같은 데이터 유형으로 저장된 문자 스트림입니다. 다국어 문자열을 특정 데이터 유형(예: Java, C++, Python) 및 기타 여러 언어로 지정합니다. 문자열을 문자 배열(예: C)로 지정합니다. 문자열은 프로그래밍에 유용합니다. 종종 다양한 애플리케이션에서 선호되는 데이터 유형이며 입력 데이터 유형으로 사용됩니다. 그리고 출력. 문자열 검색, 부분 문자열 생성 등 다양한 문자열 작업이 있습니다. 문자열 제거 작업, 문자열 번역 작업, 문자열 교체 작업, 문자열 역방향 작업 등. 문자열이 어떻게 사용되는지 보려면 아래 링크를 확인하세요. C/C++에서 사용됩니다.
https://www.tutorialspoint.com/cplusplus/cpp_strings.htm
https://www.tutorialspoint.com/cprogramming/c_strings. htm
그래서 문제에 대한 입력이 S = "ihfcbadeg"와 같으면 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. -
len := size of S for initialize i := len, when i >= 1, update (decrease i by 1), do: if S[l] is the i th character, then: (increase l by 1) otherwise when S[r] is the ith character, then: (decrease r by 1) Otherwise Come out from the loop if i is same as 0, then: return true Otherwise return false
더 나은 이해를 위해 다음 구현을 살펴보겠습니다. -
#include <bits/stdc++.h> using namespace std; bool solve(string S){ int len = S.size(), l = 0, r = len - 1, i; for (i = len; i >= 1; i--){ if (S[l] - 'a' + 1 == i) l++; else if (S[r] - 'a' + 1 == i) r--; else break; } if (i == 0) return true; else return false; } int main(){ string S = "ihfcbadeg"; cout << solve(S) << endl; }
"ihfcbadeg"
1
위 내용은 문자열이 알파벳순으로 되어 있는지 확인하는 C++ 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!