forked from anishLearnsToCode/leetcode-algorithms
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ReformatTheString.java
22 lines (21 loc) · 909 Bytes
/
ReformatTheString.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.LinkedList;
import java.util.Queue;
public class ReformatTheString {
public String reformat(String s) {
Queue<Character> digits = new LinkedList<>();
Queue<Character> alphabets = new LinkedList<>();
for (int index = 0 ; index < s.length() ; index++) {
if (Character.isAlphabetic(s.charAt(index))) {
alphabets.add(s.charAt(index));
} else digits.add(s.charAt(index));
}
if (Math.abs(digits.size() - alphabets.size()) > 1) return "";
StringBuilder result = new StringBuilder();
result.append(alphabets.size() > digits.size() ? alphabets.poll() : "");
while (!digits.isEmpty() && !alphabets.isEmpty()) {
result.append(digits.poll()).append(alphabets.poll());
}
result.append(!digits.isEmpty() ? digits.poll() : "");
return result.toString();
}
}