亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JavaScript:如何求出字符串中字符拼湊出的回文串的最少個數?

JavaScript:如何求出字符串中字符拼湊出的回文串的最少個數?

牧羊人nacy 2018-12-19 14:15:13
最近一次考試,遇到一道和回文相關的編程題,當場放棄了。題目如下:提供一個字符串s,其中每個字符都是小寫字母。并提供字符串長度。要求:輸字符串s中元素拼湊出的回文串的最小個數。其中,每個字符只能使用一次。*例如:s=“abbaa”,輸出1,因為最少可以拼湊出“ababa”這一個回文串。s=“abc”,輸出3,因為最少只能拼湊出“a”,“b”,“c”這三個回文串。*事后個人分析,判斷回文功能的代碼容易實現。較難實現的部分:1.拼湊出回文2.求出拼湊出的回文串的最小個數。望大神們提供下思路和方法~若能有實現代碼,萬分感謝~
查看完整描述

1 回答

?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

只需求奇數個的個數即可,因為偶數可以附加到l兩邊;為 0 的話如果字符串不為空就是 1,因為偶數個總可以湊出一個。

function count (str) {

  str = String(str)

  if (!str) { return 0 }

  var nums = str.split('').reduce((map, s) => map.set(s, (map.get(s) || 0) + 1), new Map())

  return Array.from(nums.values()).reduce((odd, n) => n % 2 !== 0 ? odd + 1 : odd, 0) || 1

}

進一步簡化

function count (str) {

  var arr = String(str).split('')

  if (arr.length <= 0) { return 0 }

  return arr.reduce((set, s) => set.delete(s) ? set : set.add(s), new Set()).size || 1

}


查看完整回答
反對 回復 2019-01-05
  • 1 回答
  • 0 關注
  • 702 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號