テストエンコーディング|(JavaScript)プログラマー:文字列降順で配置
に質問
文字列sに現れる文字を大から小まで順番に並べ替え、新しい文字列を返す関数と解決策を完了します.
sは英語の大文字と小文字のみからなり、大文字は小文字より小さいと見なされます.
制限
🎹📢I/O例
ほどく
const solution=(s)=>s.split('').sort((a,b)=>a.charCodeAt()<b.charCodeAt()?1:-1).join('');
文字列を1つずつ文字列に分けて並べ、アスキーコード値を基準に降順に並べ替えます.各要素と要素のサイズをAskyコードに変換して比較するので、速度は少し遅いようです.何か見逃したような気がします!
🎈他人の解答
function solution(s) {
return s
.split("")
.sort()
.reverse()
.join("");
}
何かを見逃したような気がして、この接着剤を見てふと思い出した.Askyコードを考えると
A == 65, a == 97
なので降順だとzが一番大きいので一番前、一番小さいAが一番後ろになります.したがって,Askyコードを比較する必要はなく,sort()
関数を用いるだけでよく,文字列をUnicode値で比較し昇順に並べ替える.ソート後はreverse()
で終わり、配列を1文字join('')
にマージします.Unicodeから見るとAが最小で
A == 0041, a == 0061
Unicodeには0000~0 FFFがあります.参考資料とサイト(ありがとうございます)
Reference
この問題について(テストエンコーディング|(JavaScript)プログラマー:文字列降順で配置), 我々は、より多くの情報をここで見つけました https://velog.io/@goblin820/코딩테스트-JavaScript-프로그래머스-문자열-내림차순으로-배치하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol