티스토리 뷰
문제
널 문자로 끝나는 문자열을 뒤집는 reverse(char* str) 함수를 C나 C++로 구현하라.
풀이
문자열의 가장 왼쪽과 오른쪽을 서로 바꾸고 한칸씩 안쪽으로 이동하여 문자열의 중간까지 반복시키면 됩니다.
문제에서는 char 포인터를 매개변수로 받아야하므로 char 배열의 시작위치를 매개변수로 넘겨주어 left 인덱스로 사용하고 마지막 문자의 위치의 포인터를 right 인덱스로 사용하여 left와 right의 값을 서로 바꿔주고 left는 1을 증가시키고 right는 1을 감소시키며 반복해나가면 됩니다.
구현 코드
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <string> | |
#include <iostream> | |
using namespace std; | |
void reverse(char *str){ | |
char* end = str; | |
char tmp; | |
if(str){ | |
//문자열의 끝을 찾는다. | |
while(*end) | |
++end; | |
--end; | |
//앞과 뒤의 두 문자를 바꾸고 포인터를 이동시킨다. | |
//두 포인터가 중간지점에서 만날 떄 까지 반복한다. | |
while(str < end){ | |
tmp = *str; | |
*str++ = *end; | |
*end-- = tmp; | |
} | |
} | |
} | |
int main(){ | |
char c[50] = "abcde"; | |
reverse(c); | |
cout << c << endl; | |
} |
'Coding Test > 코딩인터뷰 완전분석' 카테고리의 다른 글
[c++] 코딩인터뷰 완전분석 - 배열과 문자열 6 (0) | 2020.09.24 |
---|---|
[c++] 코딩인터뷰 완전분석 - 배열과 문자열 5 (0) | 2020.09.23 |
[c++] 코딩인터뷰 완전분석 - 배열과 문자열 4 (0) | 2020.09.22 |
[c++] 코딩인터뷰 완전분석 - 배열과 문자열 3 (0) | 2020.09.21 |
[c++] 코딩인터뷰 완전분석 - 배열과 문자열 1 (0) | 2020.09.16 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Hadoop
- 완전탐색
- HDFS
- 분할정복
- 삼각형 위의 최대 경로 수 세기
- import
- 팰린드롬 구하기
- C++
- Sqoop
- 하둡
- hive
- Jaeha's Safe
- python
- Django
- HiveQL
- 하이브
- 코딩인터뷰 완전분석
- 두니발 박사의 탈옥
- 배열과 문자열
- 알고스팟
- 종만북
- pyspark
- microwaving lunch boxes
- 출전 순서 정하기
- 스파크
- 합친 lis
- 삼각형 위의 최대 경로
- 2225
- 외발 뛰기
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함