用 JavaScript 根據字元頻率對字串進行編碼
問題
我們要求編寫一個 JavaScript 函式,其將一個字串 str 作為第一個且唯一的引數。
我們的函式應當基於輸入字串建立一個新字串,其中新字串中的每個字元如果在原始字串中僅出現一次,則為 '(',如果在原始字串中出現多次,則為 ')'
而且我們應當忽略大小寫
例如,如果函式的輸入是 -
輸入
const str = 'Success';
輸出
const output = ')())())';
示例
以下是程式碼 -
const str = 'Success';
const mapString = (str = '') => {
const mainStr = str.toLowerCase()
const hash = {}
let res = ''
for (let char of mainStr) {
hash[char] = ~~hash[char] + 1
}
for (let char of mainStr) {
if (hash[char] > 1) {
res += ')'
} else {
res += '('
}
}
return res
};
console.log(mapString(str));輸出
)())())
廣告
資料結構
計算機網路
關係型資料庫管理系統
作業系統
Java
iOS
超文字標記語言
層疊樣式表
Android
Python
C 程式語言
C++
C#
MongoDB
MySQL
JavaScript
PHP