본문 바로가기

문자열

[C++] 문자열 배열에서 세번째로 긴 문자열 출력 문제) 주어진 문자열 배열에서 세번째로 긴 문자열 출력하라. 지난 번 폰 인터뷰에 나왔던 문제이고, 이전 포스팅인 '배열에서 두번째로 작은 수를 구하기'와 거의 유사하다. 다만, string class를 좀 제대로(?) 사용해보고자 다시 해봤다. #include <iostream> #include <string> using namespace std; void swap(string *a, string *b) { st.. 더보기
[C++] 부분 문자열 검사 (Substring) 문제) 문자열 A가 주어지고, 그것보다 짧은 문자열로 구성된 배열 T가 주어진다. 배열 T에 들어있는 각 문자열이 A의 부분 문자열인지를 검사한다. 물론, C++에서 제공하는 string 클래스의 find 함수를 사용하면 하고 말 것도 없다. 여기에서는 좀 더 효율적이라고 생각되는 방법을 디자인해보는 것이 목표이다.  예를 들어 A가 'apple'이라는 문자열이라고 하자. 이제, T의 임의의 문자열 t가 'appl.. 더보기
[C] 회전된 문자열인지 판별 Given two two strings, s1 and s2, write a program to check if s1 is a rotation of s2. But you can use strstr() only once. (abcdef = cdefab) 간단해 보이는데 방법이 잘 떠오르지 않았다. 침대에 엎드려서 생각해낸 방법으로 열심히 코딩을 한 후 답안을 확인해보니 2줄이면 끝난다.  내가 사용한 방법은 s1의 .. 더보기
[CS] 반복되지 않는 첫번째 문자를 찾아라 이번에는 string에서 반복되지 않는 첫번째 문자를 찾아본다. 예를 들면 "appropriate"에서 o를 선택하면 되는 것이다. 문자열의 길이를 n이라고 하면 O(n)인데 실제로는 n을 최대 두번 읽는다. 더 좋은 방법은 없을까? #include <iostream> using namespace std; char firstchar(string str) { char ch[128]; char tmp; for (int i = 0; i.. 더보기