[LeetCode]344.Reverse String 문제 풀이 보고서
Subject
출처:https://leetcode.com/problems/reverse-string/
Write a function that takes a string as input and returns the string reversed.
Example: Given s = “hello”, return “olleh”.
Explain
이 문 제 는 간단 한 문자열 반전 출력 이라는 뜻 이다.
so easy~~
Solution
solution 1
string 을 char[]배열 로 변환 합 니 다.그리고 for 순환 은 배열 의 끝 에서 앞으로 통합 합 니 다.
public static String reverseString(String s) {
String result = "";
char[] ch = s.toCharArray();
for (int i = ch.length - 1; i >= 0; i--) {
result += ch[i];
}
return result;
}
public static String reverseString2(String s) {
String result = "";
for (int i = s.length() - 1; i >= 0; i--) {
result += s.charAt(i);
}
return result;
}
solution 2
StringBuffer 류 의 reverse()방법 을 직접 사용 합 니 다.
public static String reverseString3(String s) {
return new StringBuffer(s).reverse().toString();
}
solution 3
solution 1 의 시간 복잡 도 는 모두 o(n)이다.
실제로 우 리 는 for 순환 의 절반 데이터 길 이 를 할 수 있다.첫 번 째 문 자 를 교환 하면 됩 니 다.
이때 시간 복잡 도 는 o(n/2)이다.
public static String reverseString4(String s) {
char[] ch = s.toCharArray();
int halfLength = s.length() / 2;
char temp;
for (int i = 0; i < halfLength; i++) {
temp = ch[s.length() - 1 - i];
ch[s.length() - 1 - i] = ch[i];
ch[i] = temp;
}
return new String(ch);
}
solution 4
네 번 째 방안 은[이 또는 연산]을 채택 한다.
교환 율
이 또는 연산 의 성질 및 응용 에 대해 서 는 이 블 로 그 를 참고 할 수 있 습 니 다.
http://www.cnblogs.com/suoloveyou/archive/2012/04/25/2470292.html
public static String reverseString5(String s) {
char[] ch = s.toCharArray();
int start = 0;
int end = ch.length - 1;
while (start < end) {
ch[start] = (char) (ch[start] ^ ch[end]);
ch[end] = (char) (ch[start] ^ ch[end]);
ch[start] = (char) (ch[start] ^ ch[end]);
start++;
end--;
}
return new String(ch);
}
이 방안 의 시간 복잡 도 역시 o(n/2)이다.
solution 5
창 고 를 통 해 하 다.근 데 좀 쓸모 가 없 는 것 같 아 요.O(∩_∩)O~
public static String reverseString6(String s) {
Stack stack = new Stack<>();
char[] ch = s.toCharArray();
String result = "";
for (int i = 0; i < ch.length; i++) {
stack.push(ch[i]);
}
for (int i = 0; i < ch.length; i++) {
result += stack.pop();
}
return result;
}
시간 복잡 도 는 o(2n).
solution 6
재 귀적 인 방식 으로 하 다.
public static String reverseString7(String s) {
int length = s.length();
if (length <= 1) {
return s;
}
String leftStr = s.substring(0, length / 2);
String rightStr = s.substring(length / 2, length);
return reverseString7(rightStr) + reverseString7(leftStr);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 에서 흔히 볼 수 있 는 몇 가지 http 요청 사례위의 4 가지 방법 은 get 과 post 요청 을 보 낼 수 있 는 방법 입 니 다. 1 번: HttpURLConnection, 2 번: URLConnection, 3 번: HttpClient, 4 번 째: Soc...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.