문자열 뒤집기
역순 접근
String
을 toCharArray()
을 통해 char[]
로 변환char[]
생성char[]
에 차례대로 저장char[]
를 String
으로 변환public static ArrayList<String> solution(String[] words) {
ArrayList<String> answer = new ArrayList<>();
for (String word : words) {
char[] letters = word.toCharArray();
char[] reversedLetters = new char[letters.length];
int wordCount = 0;
for (int j = letters.length - 1; j >= 0; j--) {
reversedLetters[wordCount] = letters[j];
wordCount++;
}
answer.add(String.valueOf(reversedLetters));
}
return answer;
}
왼쪽 글자와 오른쪽 글자 서로 교환
public static ArrayList<String> solution(String[] words) {
ArrayList<String> answer = new ArrayList<>();
for (String word : words) {
char[] letters = word.toCharArray();
int left = 0;
int right = letters.length - 1;
while(left < right) {
char temp = letters[left]; // 왼쪽 글자 임시 저장
letters[left] = letters[right]; // 왼쪽 글자를 오른쪽 글자로
letters[right] = temp; // 오른쪽 글자를 왼쪽 글자로 치환
left++;
right--;
}
answer.add(String.valueOf(letters));
}
return answer;
}
public static ArrayList<String> solution(String[] words) {
ArrayList<String> answer = new ArrayList<>();
for (String word : words) {
answer.add(new StringBuilder(word).reverse().toString());
}
return answer;
}
문자열에서 영어 문자만 뒤집기
Character.isAlphabetic()
사용public static String solution(String word) {
char[] charArr = word.toCharArray();
int begin = 0;
int end = charArr.length - 1;
while (begin < end) {
char left = charArr[begin];
char right = charArr[end];
if (!Character.isAlphabetic(left)) begin++;
else if (!Character.isAlphabetic(right)) end--;
else {
charArr[begin] = right;
charArr[end] = left;
begin++;
end--;
}
}
return String.valueOf(charArr);
}
문자열에서 중복 문자 제거(순서 유지)
public static String solution(String word) {
String answer = "";
for (int i = 0; i < word.length(); i++) {
if(word.indexOf(word.charAt(i)) == i) answer += word.charAt(i);
}
return answer;
}
public static String solution(String word) {
StringBuilder answer = new StringBuilder();
LinkedHashSet<String> set = new LinkedHashSet<>(Arrays.asList(word.split("")));
for (String s : set) {
answer.append(s);
}
return answer.toString();
}