대문자 또는 소문자 알파벳 문자가 포함된 문자열 'str'이 제공됩니다. 문자열의 대문자 사용이 올바른지 확인해야 합니다.
문자열에서 대문자를 올바르게 사용하는 방법은 다음과 같습니다.
첫 글자만 대문자이면 나머지 글자는 소문자입니다.
문자열의 모든 문자가 소문자인 경우.
문자열의 모든 문자가 대문자인 경우.
"Hello"에서는 첫 번째 문자만 대문자이고 나머지 문자는 소문자이므로 유효한 문자열입니다.
"hello" 문자열에서는 모든 문자가 소문자이므로 유효한 문자열입니다.
'heLLO' 문자열에서 첫 번째 문자는 소문자이지만 마지막 3자는 대문자이므로 이 문자열은 유효하지 않습니다.
이 방법에서는 첫 번째 문자가 소문자인 경우 문자열의 모든 문자가 소문자인지 확인하고 부울 값을 반환합니다. 첫 번째 문자가 대문자이면 다른 모든 문자가 대문자인지 소문자인지 확인하고 부울 값을 반환합니다.
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)입니다.
아래 메소드에서는 첫 번째 메소드의 코드를 최적화했습니다. 여기서는 문자열에서 처음 두 문자를 제외하고 인접한 두 요소의 대소문자가 동일한지 확인하여 문자열에 유효한 대문자가 포함되어 있는지 확인합니다.
1단계 − for 루프를 사용하여 문자열의 첫 번째 인덱스부터 마지막 인덱스까지 반복합니다.
2단계 - for 루프에서 현재 문자가 대문자이고 이전 문자가 소문자라면 유효한 문자열이 아니므로 false를 반환합니다.
3단계 − 현재 문자가 소문자이고 이전 문자가 대문자인 경우 아래 단계를 따르세요.
3.1단계 - 이전 문자가 0번째 인덱스에 있는지 또는 문자열의 첫 번째 문자에 있는지 확인하고 for 루프를 계속 진행합니다.
3.2단계 − 이전 문자가 첫 번째 문자가 아닌 경우 false를 반환합니다.
시간 복잡도 - 문자열을 순회하려면 루프를 사용해야 하기 때문에 O(N)입니다.
공간 복잡도 − 추가 공간을 사용하지 않으므로 O(1)입니다.
이 튜토리얼에서 사용자는 문자열에 유효한 대문자가 포함되어 있는지 확인하는 방법을 배웠습니다. 우리는 두 가지 다른 방법을 배웠습니다. 첫 번째 접근 방식에서는 문제를 세 부분으로 나누고, 두 번째 접근 방식에서는 인접한 요소의 문자 대소문자를 확인합니다. 그러나 두 코드의 시간 및 공간 복잡도는 비슷하지만 두 번째 방법의 코드가 더 읽기 쉽습니다.
위 내용은 문자열의 대문자가 올바르게 사용되었는지 확인의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!