我正在研究免费代码营问题 - http://www.freecodecamp.com/challenges/bonfire-no-repeats-please
问题描述如下 -
返回没有重复连续字母的提供字符串的总排列数.例如,'aab'应该返回2,因为它有6个总排列,但只有2个没有相同的字母(在这种情况下为'a')重复.
我知道我可以通过编写一个创建每个排列的程序然后过滤掉重复字符的程序来解决这个问题.
但我有这种啃咬的感觉,我可以用数学方法解决这个问题.
第一个问题 - 我可以吗?
第二个问题 - 如果是,我可以使用什么公式?
详细说明 -
问题中给出的例子是"aab",该网站称有六种可能的排列,只有两种符合非重复字符标准:
aab aba baa aab aba baa
问题是每个角色都是独特的,所以也许"aab"可以更好地描述为"a1a2b"
该问题的测试如下(返回符合标准的排列数) -
"aab" should return 2
"aaa" should return 0
"abcdefa" should return 3600
"abfdefa" should return 2640
"zzzzzzzz" should return 0
Run Code Online (Sandbox Code Playgroud)
我已经阅读了很多关于组合和排列的帖子,似乎正在为自己挖掘更深的洞.但我真的想尝试有效地解决这个问题,而不是通过一系列所有可能的排列来暴力破解.
我在math.stackexchange上发布了这个问题 - https://math.stackexchange.com/q/1410184/264492
解决只重复一个字符的情况的数学非常简单 - 字符总数减去可用空格数乘以重复字符.
但试图找出重复多个字符的实例的公式却让我望而却步.例如"abfdefa"
我正在使用Timber来创建一个非常基本的Wordpress主题.
我被困了.
我想在主题中创建Widget区域,我无法弄明白.
我已尝试按照说明创建动态窗口小部件,在此页面上 - https://github.com/jarednova/timber/wiki/Sidebar#method-3-dynamic
通过以下我已经将以下代码添加到我的文件 - to page-frontpage.php我添加了
$context['dynamic_sidebar'] = Timber::get_widgets('dynamic_sidebar');
Run Code Online (Sandbox Code Playgroud)
所以它现在看起来像这样:
<?php
$context = Timber::get_context();
$post = new TimberPost();
$context['post'] = $post;
$context['dynamic_sidebar'] = Timber::get_widgets('dynamic_sidebar');
Timber::render(array('page-' . $post->post_name . '.twig', 'page.twig'), $context);
Run Code Online (Sandbox Code Playgroud)
然后我将其添加到base.twig文件中
<section>
{{ dynamic_sidebar }}
</section>
Run Code Online (Sandbox Code Playgroud)
我希望在外观 - >自定义下的Wordpress管理员中看到一个新的Widget区域但什么都没有.
在过去的几个小时里我一直在努力,并且收效甚微,任何帮助都将不胜感激.
谢谢.