[LeetCode Daily Question] [Simple] 1370。昇順および降順の文字列
1370.昇順および降順の文字列
アルゴリズムのアイデア:文字列
トピック:
Javaコード
- カウント; 26文字の出現回数をカウントします。
- 順方向トラバーサル、逆方向トラバーサル、および新しいストリングのつなぎ合わせ。
class Solution {
public String sortString(String s) {
int[] m = new int[26];//计数
for (char ch : s.toCharArray()) {
//统计每个字母出现频率
m[ch - 'a']++;
}
int count = 0;
int n = s.length();
StringBuffer res = new StringBuffer();
while (count < n) {
for (int i = 0; i < 26; i++) {
//正向遍历
if (m[i] > 0) {
res.append((char)('a' + i));
count++;
m[i]--;
}
}
for (int i = 25; i >= 0; i--) {
//反向遍历
if (m[i] > 0) {
res.append((char)('a' + i));
count++;
m[i]--;
}
}
}
return res.toString();
}
}