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

  • 难 度 等 级:微软必应·英雄会第三届在线编程大赛:几个bing?微软必应·英雄会第三届在线编程大赛:几个bing?微软必应·英雄会第三届在线编程大赛:几个bing?微软必应·英雄会第三届在线编程大赛:几个bing?微软必应·英雄会第三届在线编程大赛:几个bing?
  • 答 题 时 长:120分钟
  • 编程语言要求:C C++ Java C#
悬赏详情
一等奖 : 价值2199元的WindowsphoneNokiaLumia1020 
二等奖 : 价值799元的微软无线蓝影键盘鼠标套装 
三等奖 : 价值699元的微软Arc鼠标 
题目详情

本届大赛由微软必应词典冠名,必应词典(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取余数之后的结果。

答题说明
main函数可不用完成。
 
答案
 private int GetCount(string s)
{
int b = , bi = , bin = , bing = ;
for(int i=;i<s.Length;i++)
{
switch (s[i])
{
case 'b': b++; break;
case 'i': bi = bi + b; break;
case 'n': bin = bin + bi; break;
case 'g': bing = bing + bin; break;
default: break;
}
}
return bing;
}
上一篇:php object 对象系统


下一篇:linux中awk工具的使用