特定の文字を反転(直接反転を使用)
1186 ワード
質問する
私の答え
import java.util.*;
class Main {
public String solution(String str) {
String answer = "";
char[] a = str.toCharArray();
int lt = 0 , rt = str.length()-1;
while(lt<rt) {
//a[lt]가 알파벳이 아닐시.
if(!Character.isAlphabetic(a[lt])) lt++;
//a[rt]가 알파벳이 아닐시.
else if(!Character.isAlphabetic(a[rt])) rt--;
//a[lt],a[rt]가 알파벳일시.
else {
char tmp = a[lt];
a[lt] = a[rt];
a[rt] = tmp;
lt++;
rt--;
}
}
answer = String.valueOf(a);
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.println(T.solution(str));
}
}
解法
toCharArrayメソッドで単語を配列に分割し、lt、rtでwhile文を返します.
もしltがアルファベットでない場合=特殊文字に遭遇します.変更せずにltを移動します.
rtがアルファベットでない場合=特殊文字に遭遇します.rtを変更せずに移動します.
またlt,rtがアルファベットであれば.配列[lt]、配列[rt]の位置を変更します.
lt++,rt--(lt,rt移動)
最後のStringvalueOf(配列)で答えに含めます.
コアキー
toCharArray(), String.復習valueOf()!
ltとrtを使った条件付き文字反転を理解!
Reference
この問題について(特定の文字を反転(直接反転を使用)), 我々は、より多くの情報をここで見つけました https://velog.io/@zmdals/특정문자-뒤집기-직접뒤집기-활용テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol