Skip to content
kinksteven edited this page Aug 23, 2017 · 2 revisions

No repeats please(请不要重复,谢谢:))

问题要求

  • 把一个字符串中的字符重新排列生成新的字符串,返回新生成的字符串里没有连续重复字符的字符串个数.连续重复只以单个字符为准

问题解释

  • 这个 function 接收一个字符串参数 str,返回的是一个数值,代表字符不重复的情况。
  • 如果 straab, str.length=3总的排列有3!=6种情况,其中字符重复的有2!* 2!=4种,那么字符不重复的就是3!-2!*2!=2种,最终返回的值就是2

解题思路

这道题要分情况讨论,涉及到的知识是高中的排列组合,以及阶乘。

解决此题需要用到的公式

排列公式 A(n,m)组合公式C(n,m)阶乘公式n!

所需要分析的情况分为两种

A: 只有一组重复字符,如aab,abb.

B: 有多组重复字符,aabbabfdefa

未完待续

Clone this wiki locally