diff --git a/solution/1300-1399/1370.Increasing Decreasing String/README.md b/solution/1300-1399/1370.Increasing Decreasing String/README.md index d341476b25a94..17579b3f9e369 100644 --- a/solution/1300-1399/1370.Increasing Decreasing String/README.md +++ b/solution/1300-1399/1370.Increasing Decreasing String/README.md @@ -184,6 +184,39 @@ func sortString(s string) string { } ``` +### **Javascript** + +```js +/** + * @param {string} s + * @return {string} + */ +var sortString = function (s) { + let rs = ''; + const m = new Map(); + for (let i = 0; i < s.length; i++) { + m.set(s[i], (m.get(s[i]) || 0) + 1); + } + const keys = [...m.keys()]; + keys.sort(); + while (rs.length < s.length) { + for (let j = 0; j < keys.length; j++) { + if (m.get(keys[j]) != 0) { + rs += keys[j]; + m.set(keys[j], m.get(keys[j]) - 1); + } + } + for (let j = keys.length - 1; j >= 0; j--) { + if (m.get(keys[j]) != 0) { + rs += keys[j]; + m.set(keys[j], m.get(keys[j]) - 1); + } + } + } + return rs; +}; +``` + ### **...** ``` diff --git a/solution/1300-1399/1370.Increasing Decreasing String/README_EN.md b/solution/1300-1399/1370.Increasing Decreasing String/README_EN.md index 504c74a2066f7..4134c4b1b2205 100644 --- a/solution/1300-1399/1370.Increasing Decreasing String/README_EN.md +++ b/solution/1300-1399/1370.Increasing Decreasing String/README_EN.md @@ -158,6 +158,39 @@ func sortString(s string) string { } ``` +### **Javascript** + +```js +/** + * @param {string} s + * @return {string} + */ +var sortString = function (s) { + let rs = ''; + const m = new Map(); + for (let i = 0; i < s.length; i++) { + m.set(s[i], (m.get(s[i]) || 0) + 1); + } + const keys = [...m.keys()]; + keys.sort(); + while (rs.length < s.length) { + for (let j = 0; j < keys.length; j++) { + if (m.get(keys[j]) != 0) { + rs += keys[j]; + m.set(keys[j], m.get(keys[j]) - 1); + } + } + for (let j = keys.length - 1; j >= 0; j--) { + if (m.get(keys[j]) != 0) { + rs += keys[j]; + m.set(keys[j], m.get(keys[j]) - 1); + } + } + } + return rs; +}; +``` + ### **...** ``` diff --git a/solution/1300-1399/1370.Increasing Decreasing String/Solution.js b/solution/1300-1399/1370.Increasing Decreasing String/Solution.js new file mode 100644 index 0000000000000..46b50ac40839d --- /dev/null +++ b/solution/1300-1399/1370.Increasing Decreasing String/Solution.js @@ -0,0 +1,28 @@ +/** + * @param {string} s + * @return {string} + */ +var sortString = function (s) { + let rs = ''; + const m = new Map(); + for (let i = 0; i < s.length; i++) { + m.set(s[i], (m.get(s[i]) || 0) + 1); + } + const keys = [...m.keys()]; + keys.sort(); + while (rs.length < s.length) { + for (let j = 0; j < keys.length; j++) { + if (m.get(keys[j]) != 0) { + rs += keys[j]; + m.set(keys[j], m.get(keys[j]) - 1); + } + } + for (let j = keys.length - 1; j >= 0; j--) { + if (m.get(keys[j]) != 0) { + rs += keys[j]; + m.set(keys[j], m.get(keys[j]) - 1); + } + } + } + return rs; +};