首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

面试题,没有做出来,该如何解决

2011-12-31 
面试题,没有做出来publicclassTest1{staticintk0staticfinalString[]s{ 1 , 2 , 3 , 4 , 5

面试题,没有做出来
public   class   Test1   {
        static   int   k=0;
;static   final   String[]   s={ "1 ", "2 ", "3 ", "4 ", "5 "};
        public   static   void   getOne(String   ret,int   pos){
                if(pos> =4){
                        System.out.println(ret);
                      k=k+1;
                        return;
                }
                for(int   i=0;i <s.length;i++){
                        ret+=s[i];
                        getOne(ret,   pos+1);
                        ret=ret.substring(0,   pos-1);
                }
        }
        public   static   void   main(String[]   args){
                String   num= " ";
                getOne(num,   1);
                System.out.println(k);
        }
}
如果我只得第五位   四位的不要   应该怎么弄呢?

[解决办法]
if(ret.charAt(0)== '5 '){System.out.println(ret);}
[解决办法]
if(ret> =10000){System.out.println(ret);}

[解决办法]
for(int i=0;i <s.length;i++){
//加一句
if(i!=3)
ret+=s[i];
getOne(ret, pos+1);
ret=ret.substring(0, pos-1);
}

[解决办法]
你先把题目描述好吧..
[解决办法]
不明白什么意思
[解决办法]
全排列吧,
最小与最大,只要每次选取最大的就是最大,每次选取最小的就是最小
[解决办法]
import java.io.*;

public class Test{

public static void main(String[] args) throws Exception
{

FileWriter out = new FileWriter( "result.txt ");
int count = 0;
for(int i = 123;i <= 321;i++)
{
String s = new String(i + " , ");
if(s.indexOf( "4 ")> =0)
{
continue;
}
else if(s.indexOf( "5 ")> =0)
{
continue;
}
else if(s.indexOf( "6 ")> =0)
{
continue;
}
else if(s.indexOf( "7 ")> =0)
{
continue;
}
else if(s.indexOf( "8 ")> =0)
{
continue;
}
else if(s.indexOf( "9 ")> =0)
{
continue;
}
else if(s.indexOf( "0 ")> =0)


{
continue;
}
else
{
count ++;
out.write(s,0,s.length());
}
}
System.out.println( "find : " + count);
out.close();
}
}


[解决办法]
程序是别人的,借花献佛一下

import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

public class Test
{
public static void main(String[] args) throws Exception
{
String[] array = new String[] { "1 ", "2 ", "3 "};
listAll(Arrays.asList(array), " ");
}

public static void listAll(List candidate, String prefix)
{
if (prefix.length() == 3)
{
System.out.println(prefix);
}

for (int i = 0; i < candidate.size(); i++)
{
List temp = new LinkedList(candidate);
listAll(temp, prefix + temp.remove(i));
}
}
}

以3位为例,设待取元素列表为candidate,欲显示String为prefix
先遍历从candidate取数,加于prefix, 则candidate少了一位,prefix多了一位
,如此循环递归,终为所取。

[解决办法]
帮顶

题目的目的是要输出几个数的排列组合数,然后各个组合数的第四位不要吗?
[解决办法]
ret+=s[i];
getOne(ret, pos+1);
ret=ret.substring(0, pos-1);
控制逻辑在这,如果你想对某些位进行特殊的处理,在这里进行
你可以画出每次函数的调用诡计,知道它内部的原理,就可以任意修改了。
[解决办法]
学习!~~~
[解决办法]
学习
[解决办法]
楼主,描述一下需求!

还有,楼上借花的代码原来是我写的,但是没有看懂
if (prefix.length() == 3)
{
System.out.println(prefix);
}
这段代码的目的

这个程序的原来是回答lz的另一个帖子的:
http://community.csdn.net/Expert/TopicView.asp?id=5265197

那个是排列的问题。这里lz又是要什么呢?

热点排行