zoukankan      html  css  js  c++  java
  • 微软必应·英雄会第三届在线编程大赛:几个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函数可不用完成。
     
    答案
     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
  • 相关阅读:
    JDBC数据库连接
    JDBC驱动程序类型
    JDBC简单示例代码
    JDBC SQL语法
    JDBC是什么?
    JDBC快速入门教程
    JUnit4参数化测试实例
    JUnit套件测试实例
    JUnit4时间(超时)测试实例
    JUnit4忽略(Ignore)测试实例
  • 原文地址:https://www.cnblogs.com/ding2011/p/3539752.html
Copyright © 2011-2022 走看看