Skip to content

Commit d8a77f2

Browse files
solves reformat the string
1 parent 437cc53 commit d8a77f2

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@
359359
| 1403 | [Minimum Subsequence in Non-Increasing Order](https://leetcode.com/problems/minimum-subsequence-in-non-increasing-order) | [![Java](assets/java.png)](src/MinimumSubSequenceInNonIncreasingOrder.java) | |
360360
| 1408 | [String Matching In An Array](https://leetcode.com/problems/string-matching-in-an-array) | [![Java](assets/java.png)](src/StringMatchingInAnArray.java) | |
361361
| 1413 | [Minimum Value To Get Positive Step By Step Sum](https://leetcode.com/problems/minimum-value-to-get-positive-step-by-step-sum) | [![Java](assets/java.png)](src/MinimumValueToGetPositiveStepByStepSum.java) | |
362-
| 1417 | [Reformat The String](https://leetcode.com/problems/reformat-the-string) | | |
362+
| 1417 | [Reformat The String](https://leetcode.com/problems/reformat-the-string) | [![Java](assets/java.png)](src/ReformatTheString.java) | |
363363
| 1422 | [Maximum Score After Splitting A String](https://leetcode.com/problems/maximum-score-after-splitting-a-string) | | |
364364
| 1426 | [Counting Elements](https://leetcode.com/problems/counting-elements) | | |
365365
| 1427 | [Performing String Shifts](https://leetcode.com/problems/perform-string-shifts) | | |

src/ReformatTheString.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import java.util.LinkedList;
2+
import java.util.Queue;
3+
4+
public class ReformatTheString {
5+
public String reformat(String s) {
6+
Queue<Character> digits = new LinkedList<>();
7+
Queue<Character> alphabets = new LinkedList<>();
8+
for (int index = 0 ; index < s.length() ; index++) {
9+
if (Character.isAlphabetic(s.charAt(index))) {
10+
alphabets.add(s.charAt(index));
11+
} else digits.add(s.charAt(index));
12+
}
13+
if (Math.abs(digits.size() - alphabets.size()) > 1) return "";
14+
StringBuilder result = new StringBuilder();
15+
result.append(alphabets.size() > digits.size() ? alphabets.poll() : "");
16+
while (!digits.isEmpty() && !alphabets.isEmpty()) {
17+
result.append(digits.poll()).append(alphabets.poll());
18+
}
19+
result.append(!digits.isEmpty() ? digits.poll() : "");
20+
return result.toString();
21+
}
22+
}

0 commit comments

Comments
 (0)