문제
내가 작성한 정답
class Solution {
public String solution(String my_string, int[][] queries) {
char[] c = my_string.toCharArray();
for(int i=0; i<queries.length; i++){
int s = queries[i][0], e = queries[i][1];
while (s<e){
char a = c[s];
c[s++] = c[e];
c[e--] = a;
}
}
return new String(c);
}
}다른 사람들의 정답
class Solution {
char[] arr;
public String solution(String my_string, int[][] queries) {
arr = my_string.toCharArray();
for (int[] query : queries) {
reverse(query[0], query[1]);
}
return new String(arr);
}
private void reverse(int s, int e) {
while (s < e) {
char temp = arr[s];
arr[s++] = arr[e];
arr[e--] = temp;
}
}
}
class Solution {
static StringBuilder rvr(StringBuilder s, int l, int r) {
StringBuilder t = new StringBuilder(s.substring(l, r + 1));
t.reverse();
s.replace(l, r + 1, t.toString());
return s;
}
public String solution(String my_string, int[][] queries) {
StringBuilder answer = new StringBuilder(my_string);
for (int[] q : queries) answer = rvr(answer, q[0], q[1]);
return answer.toString();
}
}
Share article