> 백엔드 개발 > C++ > 문자열의 대문자가 올바르게 사용되었는지 확인

문자열의 대문자가 올바르게 사용되었는지 확인

王林
풀어 주다: 2023-08-28 20:57:10
앞으로
1457명이 탐색했습니다.

문자열의 대문자가 올바르게 사용되었는지 확인

문제 설명

대문자 또는 소문자 알파벳 문자가 포함된 문자열 'str'이 제공됩니다. 문자열의 대문자 사용이 올바른지 확인해야 합니다.

문자열에서 대문자를 올바르게 사용하는 방법은 다음과 같습니다.

  • 첫 글자만 대문자이면 나머지 글자는 소문자입니다.

  • 문자열의 모든 문자가 소문자인 경우.

  • 문자열의 모든 문자가 대문자인 경우.

들어가세요

으아아아

출력

으아아아

Explanation

의 중국어 번역은

Explanation

입니다.

"Hello"에서는 첫 번째 문자만 대문자이고 나머지 문자는 소문자이므로 유효한 문자열입니다.

들어가세요

으아아아

출력

으아아아

Explanation

의 중국어 번역은

Explanation

입니다.

"hello" 문자열에서는 모든 문자가 소문자이므로 유효한 문자열입니다.

들어가세요

으아아아

출력

으아아아

Explanation

의 중국어 번역은

Explanation

입니다.

'heLLO' 문자열에서 첫 번째 문자는 소문자이지만 마지막 3자는 대문자이므로 이 문자열은 유효하지 않습니다.

방법 1

이 방법에서는 첫 번째 문자가 소문자인 경우 문자열의 모든 문자가 소문자인지 확인하고 부울 값을 반환합니다. 첫 번째 문자가 대문자이면 다른 모든 문자가 대문자인지 소문자인지 확인하고 부울 값을 반환합니다.

알고리즘

  • 1단계 - 단일 문자를 인수로 취하고 문자가 소문자인지 여부에 관계없이 부울 값을 반환하는 isLower() 함수를 정의합니다. '문자-A'가 32보다 크거나 같으면 해당 문자는 소문자입니다.

  • 2단계 - isLower() 함수와 마찬가지로 isUpper() 함수를 정의하고 문자가 대문자인지 여부에 따라 부울 값을 반환합니다.

  • 3단계 - 문자열에 유효한 대문자가 모두 포함되어 있는지 확인하는 isValidUpper() 함수를 정의합니다.

  • 4단계 - isValidUpper() 함수에서 isLower() 함수를 사용하여 첫 번째 문자가 소문자인지 확인합니다. 그렇다면 루프와 isUpper() 함수를 사용하여 다른 모든 문자를 확인하세요. 대문자가 있으면 false를 반환합니다. 그렇지 않고 모든 문자가 소문자이면 true를 반환합니다.

  • 5단계 - 첫 글자가 대문자인 경우 2가지 경우를 확인해야 합니다. 첫 번째 경우는 모든 문자가 대문자이거나 첫 번째 문자를 제외한 모든 문자가 소문자일 수 있다는 것입니다.

  • 5.1단계 - 변수 'totalUpper'를 정의하고 1로 초기화합니다.

  • 5.2단계 - 문자열에 포함된 총 대문자 수를 셉니다.

  • 5.3단계 - 총 대문자 수가 1 또는 문자열 길이와 같으면 true를 반환하여 문자열에 유효한 대문자가 포함되어 있음을 나타냅니다. 그렇지 않으면 false를 반환합니다.

으아아아

출력

으아아아
  • 시간 복잡도 − O(N). 문자열을 순회하려면 루프를 사용해야 하기 때문입니다. isLower() 및 isUpper() 함수의 시간 복잡도는 O(1)입니다.

  • 공간 복잡도 − 추가 공간을 사용하지 않으므로 O(1)입니다.

방법 2

아래 메소드에서는 첫 번째 메소드의 코드를 최적화했습니다. 여기서는 문자열에서 처음 두 문자를 제외하고 인접한 두 요소의 대소문자가 동일한지 확인하여 문자열에 유효한 대문자가 포함되어 있는지 확인합니다.

알고리즘

  • 1단계 − for 루프를 사용하여 문자열의 첫 번째 인덱스부터 마지막 ​​인덱스까지 반복합니다.

  • 2단계 - for 루프에서 현재 문자가 대문자이고 이전 문자가 소문자라면 유효한 문자열이 아니므로 false를 반환합니다.

  • 3단계 − 현재 문자가 소문자이고 이전 문자가 대문자인 경우 아래 단계를 따르세요.

  • 3.1단계 - 이전 문자가 0번째 인덱스에 있는지 또는 문자열의 첫 번째 문자에 있는지 확인하고 for 루프를 계속 진행합니다.

  • 3.2단계 − 이전 문자가 첫 번째 문자가 아닌 경우 false를 반환합니다.

으아아아

출력

으아아아
  • 시간 복잡도 - 문자열을 순회하려면 루프를 사용해야 하기 때문에 O(N)입니다.

  • 공간 복잡도 − 추가 공간을 사용하지 않으므로 O(1)입니다.

결론

이 튜토리얼에서 사용자는 문자열에 유효한 대문자가 포함되어 있는지 확인하는 방법을 배웠습니다. 우리는 두 가지 다른 방법을 배웠습니다. 첫 번째 접근 방식에서는 문제를 세 부분으로 나누고, 두 번째 접근 방식에서는 인접한 요소의 문자 대소문자를 확인합니다. 그러나 두 코드의 시간 및 공간 복잡도는 비슷하지만 두 번째 방법의 코드가 더 읽기 쉽습니다.

위 내용은 문자열의 대문자가 올바르게 사용되었는지 확인의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿