[알고리즘문제풀기] 문자열 뒤집기

silver's avatar
Apr 21, 2025
[알고리즘문제풀기] 문자열 뒤집기

문제

내가 작성한 정답

 
// String class Solution { public String solution(String my_string, int s, int e) { String answer = my_string.substring(0,s); for(int i=e; i>=s; i--){ answer += my_string.charAt(i); } answer += my_string.substring(e+1,my_string.length()); return answer; } } // Stringbuffer class Solution { public String solution(String my_string, int s, int e) { StringBuilder answer = new StringBuilder(); answer.append(my_string.substring(0,s)); for(int i = e; i>=s; i--){ answer.append(my_string.charAt(i)); } answer.append(my_string.substring(e+1,my_string.length())); return answer.toString(); } } //stream import java.util.stream.*; class Solution { public String solution(String my_string, int s, int e) { String answer = ""; return IntStream.range(0,my_string.length()) .mapToObj(i-> (i>=s && i<=e)?my_string.charAt(s+e-i):my_string.charAt(i)) .map(String::valueOf) .collect(Collectors.joining()); //.reduce("",String::concat); } }

다른 사람들의 정답

StringBuilder - reverse()

String은 불변이라 reverse()메서드가 존재하지 않고 가변인 StringBuilder와 StringBuffer에만 존재한다.reverse()은 해당 객체 안의 문자열 순서를 완전히 뒤집는 역할을 한다.
class Solution { public String solution(String my_string, int s, int e) { StringBuilder answer = new StringBuilder(my_string.substring(s, e + 1)); answer.reverse(); return my_string.substring(0, s) + answer + my_string.substring(e + 1); } } class Solution { public String solution(String myString, int s, int e) { return myString.substring(0, s) + new StringBuilder(myString.substring(s, e + 1)).reverse().toString() + myString.substring(e + 1); } }

while

class Solution { public String solution(String my_string, int s, int e) { char[] arr = my_string.toCharArray(); while (s < e) { char temp = arr[s]; arr[s++] = arr[e]; arr[e--] = temp; } return new String(arr); } }
 
 
Share article

silver