首页 > 其他 > 详细

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

时间:2014-02-07 20:44:31      阅读:342      评论:0      收藏:0      [点我收藏+]
  • 难 度 等 级:bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣
  • 答 题 时 长: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函数可不用完成。
 
答案
bubuko.com,布布扣
 1 private int GetCount(string s)
 2 {
 3     int b = 0, bi = 0, bin = 0, bing = 0;
 4     for(int i=0;i<s.Length;i++)
 5     {
 6         switch (s[i])
 7         {
 8             case b: b++; break;
 9             case i: bi = bi + b; break;
10             case n: bin = bin + bi; break;
11             case g: bing = bing + bin; break;
12             default: break;
13         }
14     }
15     return bing;
16 }
View Code

 

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

原文:http://www.cnblogs.com/ding2011/p/3539752.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!