微软必应·英雄会第三届在线编程大赛:几个bing?

今天用了2小时做了个比赛程序,不求获奖,只求增长技术和代码规范,比赛题目如下,源代码等比赛结束了公布。

程序下载地址:http://download.csdn.net/detail/carl_xie_87/6864879

想下来参考也可。

题目详情

    本届大赛由微软必应词典冠名,必应词典(http://cn.bing.com/dict/?form=BDVSP4&mkt=zh-CN&setlang=ZH)是微软推出的新一代英语学习引擎,里面收录了很多我们常见的单词。但现实生活中,我们也经常能看到一些毫无规则的字符串,导致词典无法正常收录,不过,我们是否可以从无规则的字符串中提取出正规的单词呢?

   例如有一个字符串"iinbinbing",截取不同位置的字符‘b’、‘i’、‘n’、‘g’组合成单词"bing"。若从1开始计数的话,则‘b’ ‘i’ ‘n’ ‘g’这4个字母出现的位置分别为(4,5,6,10) (4,5,9,10),(4,8,9,10)和(7,8,9,10),故总共可以组合成4个单词”bing“。

  咱们的问题是:现给定任意字符串,只包含小写‘b’ ‘i’ ‘n’ ‘g’这4种字母,请问一共能组合成多少个单词bing?

  字符串长度不超过10000,由于结果可能比较大,请输出对10^9 + 7取余数之后的结果。

 

 

 

微软必应·英雄会第三届在线编程大赛:几个bing?

上一篇:Java多线程核心技术(四)Lock的使用


下一篇:Java多线程核心技术(五)单例模式与多线程