목차
지침
방법 2
알고리즘
출력
결론
백엔드 개발 C++ 문자열을 세 개의 하위 문자열로 분할할 수 있는지 확인합니다. 여기서 하나의 하위 문자열은 다른 두 하위 문자열의 하위 문자열입니다.

문자열을 세 개의 하위 문자열로 분할할 수 있는지 확인합니다. 여기서 하나의 하위 문자열은 다른 두 하위 문자열의 하위 문자열입니다.

Sep 22, 2023 am 11:53 AM
문자열 분할 하위 문자열 조사하다

문자열을 세 개의 하위 문자열로 분할할 수 있는지 확인합니다. 여기서 하나의 하위 문자열은 다른 두 하위 문자열의 하위 문자열입니다.

이 문제에서는 세 번째 하위 문자열이 처음 두 하위 문자열의 하위 문자열이 될 수 있도록 주어진 문자열을 분할해야 합니다.

해결책을 생각해 봅시다. 세 번째 문자열은 처음 두 문자열이 세 번째 문자열의 모든 문자를 포함하는 경우에만 처음 두 문자열의 하위 문자열이 될 수 있습니다. 따라서 주어진 문자열에서 빈도가 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() 메서드를 사용하여 특정 문자의 발생 횟수를 계산합니다.

  • count() 메서드는 시작 위치에 대한 참조를 첫 번째 인수로, 끝 위치에 대한 참조를 두 번째 인수로, 문자를 세 번째 인수로 사용합니다.

    여기서 문자의 ASCII 값을 매개변수로 전달해야 하며 I + 'a'를 사용하여 값을 가져옵니다.

  • 5단계 - count() 메서드가 3보다 크거나 같으면 true를 반환합니다.

  • 6단계 - 루프가 종료되면 false를 반환합니다.

으아아아

출력

으아아아

시간 복잡도 - O(N) count() 메서드가 문자 배열을 반복하여 문자 수를 계산하기 때문입니다. 또한 strcpy() 메서드는 O(N) 시간이 걸립니다.

공간 복잡도 - 문자열을 문자 배열에 저장하기 때문에 O(N)입니다.

결론

하나의 하위 문자열이 두 개의 다른 하위 문자열의 하위 문자열이 될 수 있도록 문자열을 세 개의 하위 문자열로 분할하는 두 가지 방법을 배웠습니다. 두 번째 방법의 코드는 더 읽기 쉽고 초보자에게 친숙하지만 시간과 공간이 더 많이 소요됩니다.

위 내용은 문자열을 세 개의 하위 문자열로 분할할 수 있는지 확인합니다. 여기서 하나의 하위 문자열은 다른 두 하위 문자열의 하위 문자열입니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Python에서 애플리케이션이 열려 있는지 확인하는 방법은 무엇입니까? Python에서 애플리케이션이 열려 있는지 확인하는 방법은 무엇입니까? Aug 26, 2023 pm 06:49 PM

실행되는 프로그램을 프로세스라고 합니다. 프로세스는 현재 운영 체제에서 실행되는 애플리케이션이거나 운영 체제와 관련된 애플리케이션일 수 있습니다. 응용 프로그램이 운영 체제에 연결되어 있으면 먼저 자체 실행 프로세스를 만듭니다. 다른 응용 프로그램은 실행을 위해 운영 체제 서비스에 의존합니다. 대부분의 응용 프로그램은 운영 체제, 소프트웨어 및 하드웨어를 유지 관리하는 운영 체제 서비스 및 백그라운드 응용 프로그램입니다. Python에는 애플리케이션이 열려 있는지 확인하는 다양한 방법이 있습니다. 하나씩 자세히 알아보겠습니다. psutil.process_iter() 함수 사용 psutil은 실행 중인 프로세스 및 시스템 활용도에 대한 정보를 검색할 수 있는 인터페이스를 사용자에게 제공하는 Python의 모듈입니다.

Teams에서 맞춤법 검사가 작동하지 않음 [수정됨] Teams에서 맞춤법 검사가 작동하지 않음 [수정됨] Mar 06, 2024 am 09:10 AM

때때로 Teams에서 맞춤법 검사가 작동하지 않는 경우가 있다는 사실을 알아차리기 시작했습니다. 맞춤법 검사는 효과적인 의사소통을 위한 필수 도구이며 이에 대한 공격은 작업 흐름에 상당한 혼란을 초래할 수 있습니다. 이 문서에서는 맞춤법 검사가 예상대로 작동하지 않는 일반적인 이유와 이전 상태로 복원하는 방법을 살펴보겠습니다. 따라서 Teams에서 맞춤법 검사가 작동하지 않는 경우 이 문서에 설명된 해결 방법을 따르세요. Microsoft 맞춤법 검사가 작동하지 않는 이유는 무엇입니까? Microsoft 맞춤법 검사가 제대로 작동하지 않는 데에는 여러 가지 이유가 있을 수 있습니다. 이러한 이유에는 호환되지 않는 언어 설정, 맞춤법 검사 기능 비활성화, MSTeam 또는 MSOffice 설치 손상 등이 포함됩니다. 또한 오래된 MSTeams 및 MSOf

Python에서 객체가 반복 가능한지 확인하는 방법은 무엇입니까? Python에서 객체가 반복 가능한지 확인하는 방법은 무엇입니까? Aug 25, 2023 pm 10:05 PM

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

Java에서 부분 문자열의 발생 횟수를 재귀적으로 계산합니다. Java에서 부분 문자열의 발생 횟수를 재귀적으로 계산합니다. Sep 17, 2023 pm 07:49 PM

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

Jul 25, 2023 am 09:45 AM

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

Windows 11에서 SSD 상태를 확인하는 방법은 무엇입니까? Win11에서 SSD 상태를 확인하는 방법 Windows 11에서 SSD 상태를 확인하는 방법은 무엇입니까? Win11에서 SSD 상태를 확인하는 방법 Feb 14, 2024 pm 08:21 PM

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

strtok_r() 함수는 C 언어의 함수로 문자열을 일련의 하위 문자열로 분할하는 것입니다. strtok_r() 함수는 C 언어의 함수로 문자열을 일련의 하위 문자열로 분할하는 것입니다. Aug 26, 2023 am 09:45 AM

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

ArrayList에 Java의 특정 요소가 포함되어 있는지 확인하는 방법은 무엇입니까? ArrayList에 Java의 특정 요소가 포함되어 있는지 확인하는 방법은 무엇입니까? Sep 03, 2023 pm 04:09 PM

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

See all articles