문자열을 반전하는 함수를 작성합니다. 입력 문자열은 문자 s의 배열로 제공됩니다.
O(1) 추가 메모리로 입력 배열을 수정하여 이 작업을 수행해야 합니다.
Write a function that reverses a string. The input string is given as an array of characters s.
You must do this by modifying the input array in-place with O(1) extra memory.
Example 1:
Input: s = ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]
Example 2:
Input: s = ["H","a","n","n","a","h"]
Output: ["h","a","n","n","a","H"]
https://leetcode.com/problems/reverse-string/
자바입니다.
1.투포인터
class Solution {
public void reverseString(char[] s) {
char tmp;
int j = s.length;
for(int i=0;i<j/2;i++){
tmp = s[i];
s[i] = s[j-1-i];
s[j-1-i]=tmp;
}
}
}
2.재귀
class Solution {
public void reverseString(char[] s) {
if(s.length==1) return;
reverse(s, 0);
}
public void reverse(char[] s, int i){
int j = s.length;
if(i>=j/2) return;
char tmp = s[i];
s[i] = s[j-1-i];
s[j-1-i] = tmp;
reverse(s, ++i);
}
}