문자열을 세 개의 하위 문자열로 분할할 수 있는지 확인합니다. 여기서 하나의 하위 문자열은 다른 두 하위 문자열의 하위 문자열입니다.
이 문제에서는 세 번째 하위 문자열이 처음 두 하위 문자열의 하위 문자열이 될 수 있도록 주어진 문자열을 분할해야 합니다.
해결책을 생각해 봅시다. 세 번째 문자열은 처음 두 문자열이 세 번째 문자열의 모든 문자를 포함하는 경우에만 처음 두 문자열의 하위 문자열이 될 수 있습니다. 따라서 주어진 문자열에서 빈도가 3보다 큰 문자를 하나 이상 찾아야 하며 해당 단일 문자의 세 번째 하위 문자열을 가져올 수 있습니다.
문제 설명 - N개의 소문자 알파벳 문자를 포함하는 문자열 str이 제공됩니다. 문자열을 세 개의 부분 문자열 a, b, c로 분할하여 부분 문자열 c가 a와 b의 부분 문자열이 되도록 할 수 있는지 확인해야 합니다. 3개의 하위 문자열을 찾을 수 있는지 여부에 따라 "yes" 또는 "no"를 인쇄합니다.
예
으아아아 으아아아지침
여기서 문자열을 "tu", "torialsPoin" 및 "t"로 나눌 수 있습니다. 따라서 세 번째 문자열은 처음 두 문자열의 하위 문자열입니다.
으아아아 으아아아지침
문자의 빈도가 3보다 크지 않기 때문에 주어진 조건에 따라 문자열을 세 개의 하위 문자열로 분할할 수 없습니다.
으아아아 으아아아지침
주어진 조건에 따라 세 개의 하위 문자열 은 'h', 'h' 및 'hhhhhh'가 될 수 있습니다.
방법 1
이 방법에서는 배열을 사용하여 각 문자의 빈도를 저장합니다. 그런 다음 빈도가 3보다 크거나 같은 문자를 확인합니다.
알고리즘
1단계 - 길이가 26인 "freq" 배열을 정의합니다.
2단계 - 문자열을 반복하여 문자의 빈도를 계산합니다. for 루프에서 freq[str[i] – 'a'] 값을 늘립니다. 여기서 str[i] – 'a'는 0에서 26 사이의 인덱스를 제공합니다.
3단계 - 이제 "freq" 배열을 반복하고 배열 인덱스의 값이 "3"보다 크면 true를 반환합니다.
4단계 - 루프가 종료되면 true를 반환합니다.
5단계 - isSUbStringPossible() 함수의 반환 값에 따라 "Yes" 또는 "No"를 인쇄합니다.
예
으아아아출력
으아아아시간 복잡도 - O(N), 문자열을 반복할 때.
공간 복잡도 - 일정한 길이의 배열을 사용하므로 O(1)입니다.
방법 2
이 방법에서는 먼저 문자열을 문자 배열로 변환합니다. 그런 다음 count() 메서드를 사용하여 배열에서 특정 문자의 빈도를 계산합니다.
알고리즘
1단계 - "len + 1" 크기의 배열을 만듭니다. 여기서 "len"은 문자열 길이입니다.
2단계 - strcpy() 메서드를 사용하여 문자열을 char 배열로 복사합니다.
3단계 - for 루프를 사용하여 총 26번 반복합니다.
4단계 - for 루프에서 count() 메서드를 사용하여 특정 문자의 발생 횟수를 계산합니다.
5단계 - count() 메서드가 3보다 크거나 같으면 true를 반환합니다.
6단계 - 루프가 종료되면 false를 반환합니다.
count() 메서드는 시작 위치에 대한 참조를 첫 번째 인수로, 끝 위치에 대한 참조를 두 번째 인수로, 문자를 세 번째 인수로 사용합니다.
여기서 문자의 ASCII 값을 매개변수로 전달해야 하며 I + 'a'를 사용하여 값을 가져옵니다.
예
으아아아출력
으아아아시간 복잡도 - O(N) count() 메서드가 문자 배열을 반복하여 문자 수를 계산하기 때문입니다. 또한 strcpy() 메서드는 O(N) 시간이 걸립니다.
공간 복잡도 - 문자열을 문자 배열에 저장하기 때문에 O(N)입니다.
결론
하나의 하위 문자열이 두 개의 다른 하위 문자열의 하위 문자열이 될 수 있도록 문자열을 세 개의 하위 문자열로 분할하는 두 가지 방법을 배웠습니다. 두 번째 방법의 코드는 더 읽기 쉽고 초보자에게 친숙하지만 시간과 공간이 더 많이 소요됩니다.
위 내용은 문자열을 세 개의 하위 문자열로 분할할 수 있는지 확인합니다. 여기서 하나의 하위 문자열은 다른 두 하위 문자열의 하위 문자열입니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











실행되는 프로그램을 프로세스라고 합니다. 프로세스는 현재 운영 체제에서 실행되는 애플리케이션이거나 운영 체제와 관련된 애플리케이션일 수 있습니다. 응용 프로그램이 운영 체제에 연결되어 있으면 먼저 자체 실행 프로세스를 만듭니다. 다른 응용 프로그램은 실행을 위해 운영 체제 서비스에 의존합니다. 대부분의 응용 프로그램은 운영 체제, 소프트웨어 및 하드웨어를 유지 관리하는 운영 체제 서비스 및 백그라운드 응용 프로그램입니다. Python에는 애플리케이션이 열려 있는지 확인하는 다양한 방법이 있습니다. 하나씩 자세히 알아보겠습니다. psutil.process_iter() 함수 사용 psutil은 실행 중인 프로세스 및 시스템 활용도에 대한 정보를 검색할 수 있는 인터페이스를 사용자에게 제공하는 Python의 모듈입니다.
![Teams에서 맞춤법 검사가 작동하지 않음 [수정됨]](https://img.php.cn/upload/article/000/887/227/170968741326618.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
때때로 Teams에서 맞춤법 검사가 작동하지 않는 경우가 있다는 사실을 알아차리기 시작했습니다. 맞춤법 검사는 효과적인 의사소통을 위한 필수 도구이며 이에 대한 공격은 작업 흐름에 상당한 혼란을 초래할 수 있습니다. 이 문서에서는 맞춤법 검사가 예상대로 작동하지 않는 일반적인 이유와 이전 상태로 복원하는 방법을 살펴보겠습니다. 따라서 Teams에서 맞춤법 검사가 작동하지 않는 경우 이 문서에 설명된 해결 방법을 따르세요. Microsoft 맞춤법 검사가 작동하지 않는 이유는 무엇입니까? Microsoft 맞춤법 검사가 제대로 작동하지 않는 데에는 여러 가지 이유가 있을 수 있습니다. 이러한 이유에는 호환되지 않는 언어 설정, 맞춤법 검사 기능 비활성화, MSTeam 또는 MSOffice 설치 손상 등이 포함됩니다. 또한 오래된 MSTeams 및 MSOf

반복 가능한 객체는 루프나 반복 가능한 함수를 사용하여 모든 요소를 반복할 수 있는 객체입니다. 목록, 문자열, 사전, 튜플 등을 모두 반복 가능한 객체라고 합니다. Python 언어에는 객체가 반복 가능한지 여부를 확인하는 다양한 방법이 있습니다. 하나씩 살펴보겠습니다. 루프 사용하기 Python에는 두 가지 루프 기술이 있습니다. 하나는 "for" 루프를 사용하고 다른 하나는 "while" 루프를 사용하는 것입니다. 이 두 루프 중 하나를 사용하면 주어진 객체가 반복 가능한지 확인할 수 있습니다. 예제 이 예제에서는 "for" 루프를 사용하여 객체를 반복하고 반복되는지 여부를 확인합니다. 아래는 코드입니다. l=["사과",22,"오렌지색

두 개의 문자열 str_1과 str_2가 주어졌습니다. 목표는 재귀 프로시저를 사용하여 문자열 str1에서 하위 문자열 str2의 발생 횟수를 계산하는 것입니다. 재귀 함수는 정의 내에서 자신을 호출하는 함수입니다. str1이 "Iknowthatyouknowthatiknow"이고 str2가 "know"인 경우 발생 횟수는 -3입니다. 예를 들어 str1="TPisTPareTPamTP", str2="TP"를 입력하면 Countofoccurrencesofasubstringrecursi가 출력됩니다.

MySQL에서 LOCATE 함수를 사용하여 문자열에서 하위 문자열의 위치를 찾는 방법 MySQL에는 문자열을 처리하는 데 사용할 수 있는 함수가 많이 있습니다. 그 중 LOCATE 함수는 문자열에서 부분 문자열의 위치를 찾는 데 사용할 수 있는 매우 유용한 함수입니다. LOCATE 함수의 구문은 다음과 같습니다. LOCATE(substring,string,[position]) 여기서 substring은 찾을 하위 문자열이고 string은 찾을 하위 문자열입니다.

Windows 11에서 SSD 상태를 확인하는 방법은 무엇입니까? 빠른 읽기, 쓰기 및 액세스 속도를 위해 SSD는 빠르게 HDD를 대체하고 있지만 SSD의 안정성이 더 뛰어나더라도 여전히 Windows 11에서 SSD의 상태를 확인해야 합니다. 그것을 운영하는 방법? 이 튜토리얼에서는 편집자가 방법을 공유합니다. 방법 1: WMIC1을 사용하고 Win+R 키 조합을 사용하여 wmic를 입력한 다음 확인을 누르거나 클릭합니다. Enter2. 이제 다음 명령을 입력하거나 붙여넣어 SSD 상태를 확인합니다. diskdrivegetstatus "상태: OK" 메시지가 나타나면 SSD 드라이브가 정상적으로 작동하고 있는 것입니다.

이 함수는 strtok() 함수와 유사합니다. 유일한 주요 차이점은 재진입 함수라고 불리는 _r입니다. 재진입 기능은 실행 중에 중단될 수 있는 기능입니다. 이 유형의 함수를 사용하여 실행을 재개할 수 있습니다. 따라서 재진입 기능은 스레드로부터 안전합니다. 즉, 손상을 일으키지 않고 스레드에 의해 안전하게 중단될 수 있습니다. strtok_r() 함수에는 context라는 추가 매개변수가 있습니다. 이렇게 하면 기능을 올바른 위치에 복원할 수 있습니다. strtok_r() 함수의 구문은 다음과 같습니다: #include<string.h>char*strtok_r(char*string,constchar*limiter,char**

List 인터페이스의 contain() 메소드를 사용하여 목록에 객체가 존재하는지 확인할 수 있습니다. 포함() 메서드 booleancontains(Objecto) 이 목록에 지정된 요소가 포함되어 있으면 true를 반환합니다. 더 공식적으로는 이 목록에 (o==null?e==null:o.equals(e))와 같은 요소 e가 하나 이상 포함되어 있는 경우에만 true를 반환합니다. 매개변수 c - 이 목록에 존재하는지 테스트할 요소입니다. 반환 값 이 목록에 지정된 요소가 포함되어 있으면 true를 반환합니다. ClassCastException 발생 - 지정된 요소의 유형이 이 목록과 호환되지 않는 경우(선택 사항). 널P
