50,527
社区成员
发帖
与我相关
我的任务
分享
public class Test4 {
static char[] ch;
static int index=0;
static int b_num=0;
static int i_num=0;
static int n_num=0;
static int num=0;
public static void main(String[] args) {
System.out.println(getNum("iinbinbinginng"));
}
public static int getNum(String str){
ch=str.toCharArray();
for (int i = 0; i < ch.length; i++) {
switch (ch[i]) {
case 'b':
b_num++;
break;
case 'i':
i_num+=b_num;
break;
case 'n':
n_num+=i_num;
break;
case 'g':
num+=n_num;
break;
default:
break;
}
}
return num%(10^9+7);
}
}
namespace CSharpHelloWorld
{
class Program
{
static void Main(string[] args)
{
int modBase = 10 ^ 9 + 7;
StringBuilder dataSB = new StringBuilder("iibbingng");
int length = dataSB.Length;
int[] dps = new int[4];
for (int ids = 0; ids < length; ++ids)
{
switch (dataSB[ids])
{
case 'b': dps[0] = (dps[0] + 1) % modBase; break;
case 'i': dps[1] = (dps[0] + dps[1]) % modBase; break;
case 'n': dps[2] = (dps[1] + dps[2]) % modBase; break;
case 'g': dps[3] = (dps[2] + dps[3]) % modBase; break;
}
}
Console.WriteLine(dps[3]);
}
}
}
public int howmany(string s)
{
ulong b=0, bi=0,bin=0,bing=0;
foreach(char bbb in s)
{
if(bbb=='b') b++;
if(bbb=='i') bi+=b;
if(bbb=='n') bin+=bi;
if(bbb=='g') bing+=bin;
}
return (int)(bing % (1000000000+7));
}
地铁上想出来的,绝对原创,速度极快,如有雷同,就是思路相同了