<script>
// 获取字符串中出现次数最少的字符
function getRareChar(str) {
let hash = {};
// 将各个字符名字、首次出现位置及出现次数存到hash表
for(let i = 0, len = str.length; i < len; i++) {
// 如果hash[str[i]]不存在,则对其进行初始化
hash[str[i]] = hash[str[i]] || {index: i, count: 0};
hash[str[i]].count++; // count计数自增
}
// 因为哈希表不好排序,将它转成数组
return Object.keys(hash).map(function (key) {
return Object.assign({char: key}, hash[key]);
// 根据count属性进行升序排序
}).sort(function (a, b) {
return a.count - b.count;
// 取出count最小的
}).filter(function (e, i, arr) {
return e.count === arr[0].count;
// 在count值最小的集合里面再根据index属性进行升序排序
}).sort(function (a, b) {
return a.index - b.index;
})[0].char;
}
// 测试数据
var str = 'ablfdasfdarleoeorwqajhfdsafdlladaasrjhehafdalhewadadfahwesaew';
alert(getRareChar(str));
</script>
实现一个算法,寻找字符串中出现次数最少的、并且首次出现位置最前的字符
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...