문자열

빠른 설명

문자열은 문자들의 순서 있는 배열이다. 알고리즘 문제에서는 인덱싱, 슬라이싱, 빈도 세기, 부분 문자열 검색, 정렬, 뒤집기 등이 자주 나온다.

언제 쓰는가

  • 회문, 사전순, 접두사, 접미사 문제
  • 특정 문자의 개수나 위치를 세는 문제
  • 문자열을 규칙대로 변환하거나 복원하는 문제

시간복잡도

  • 길이 문자열 한 번 순회:
  • 단순 부분 문자열 검색: 최악
  • KMP 검색:

참고자료

C++ 코드

#include <algorithm>
#include <deque>
#include <functional>
#include <iostream>
#include <queue>
#include <stack>
#include <string>
#include <utility>
#include <vector>
using namespace std;
 
int main() {
    string s = "abacaba";
 
    cout << s[0] << '\n';           // 첫 문자
    cout << s.substr(2, 3) << '\n'; // 2번 인덱스부터 3글자
 
    int cnt = 0;
    for (char c : s) {
        if (c == 'a') cnt++;
    }
    cout << cnt << '\n';
}

Python 코드

s = "abacaba"
 
print(s[0])
print(s[2:5])
 
cnt = 0
for ch in s:
    if ch == "a":
        cnt += 1
 
print(cnt)