十分牛逼的程序这个程序考题居然有牛人一次遍历就解决
本帖最后由 woodangel 于 2014-1-18 21:42 编辑例如有一个字符串"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?
这个程序题不难我开始就考虑用递归函数解决不过要遍历N次
后来看了一个程序牛人1次遍历就解决了问题,速度是原来的N倍。实在是吊。
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)
{
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
}
}
大师难道之前没听说过动态规划么
而且这个解法 如果不是bing是woodangel呢? 大师快想想,如果是woodangel怎么办,有两个o啊,怎么办怎么办 一样的吧。case里有两个变量同时加就好了。。有多少个重复都一样吧。。 吊丝看不懂,只有干捉急。 一样的吧。case里有两个变量同时加就好了。。有多少个重复都一样吧。。
大师快想想,如果是woodangel怎么办,有两个o啊,怎么办怎么办 大师快想想,如果是woodangel怎么办,有两个o啊,怎么办怎么办 牛逼你妈个蛋,傻B。还递归,递你脑袋驴腚眼子的归。
现在码农平均工资这么低,都是你这种傻B拖的后腿
天天上CSDN的蠢B
大师快想想,如果是woodangel怎么办,有两个o啊,怎么办怎么办 minker 发表于 2014-1-19 02:25 static/image/common/back.gif
一样的吧。case里有两个变量同时加就好了。。有多少个重复都一样吧。。
case里有2个变量就行了? 没看懂
靠这几行代码就写出了个woodangel操作系统。:lol 这牛在哪里?即使不会编程的人也知道先把bing全部拿下来然后做排列组合啊 大师快想想,如果是woodangel怎么办,有两个o啊,怎么办怎么办 3615429KKG 发表于 2014-1-19 13:25
case里有2个变量就行了? 没看懂
case o里面
numo2+=numo1
numo1+=numw
就行了。
页:
[1]