有如下字符串:"北京+长沙/武汉+西安/兰州+新疆"
字符是不定长的,'+'号表示中转,'/'表示或 也就是 长沙/武汉 可以在长沙中转也可以在武汉中转
要求得到:a.北京->长沙->西安->新疆
b.北京->长沙->兰州->新疆
c.北京->武汉->西安->新疆
d.北京->武汉->兰州->新疆
请大家帮忙,成份感谢.
C#那边看到的一个题,想到了图的深度遍历,但是应该怎么实现呢,有没有人试试
字符是不定长的,'+'号表示中转,'/'表示或 也就是 长沙/武汉 可以在长沙中转也可以在武汉中转
要求得到:a.北京->长沙->西安->新疆
b.北京->长沙->兰州->新疆
c.北京->武汉->西安->新疆
d.北京->武汉->兰州->新疆
请大家帮忙,成份感谢.
C#那边看到的一个题,想到了图的深度遍历,但是应该怎么实现呢,有没有人试试
解决方案 »
- java audio的问题
- javac classpath问题
- sqlserver 2005用ResultSetMetaData取列类型,日期取出了nvarchar
- 怎么让线程不抢占资源呀。。。谢谢
- 急:多关键字排序算法救助
- 关于传递 数据的 问题!
- 一个简单的helloword的问题
- 请问为什么我写的线程CPU占用率始终是100%
- 随机生成100个数,然后寸入access数据库,但每次只能生成几个数字,寸入数据库几个数字,很奇怪!
- 象C++里的cin一样,我象在JAVA里在屏幕上输入应该怎么写?
- 将一个盘下的所有. java文件的文件名写入另一个文件出现空指针异常!
- JAVA里怎么调用DLL中的函数?
http://topic.csdn.net/u/20100428/10/968e4998-06c5-4d91-a040-39299691cf31.html
List infoList = new ArrayList();
String[] infos = info.split(CHANGE);
String result = null;
for (int i = 0; i < infos.length; i++) {
String[] temp = infos[i].split(TRANSLATE);
if (infoList.size() > 0) {
int size = infoList.size();
for (;;) { for (int j = 0; j < temp.length; j++) {
String append = (String) infoList.get(0);
append += temp[j] + "->";
infoList.add(append);
}
size--;
infoList.remove(0);
System.out.println(size);
if (size < 1)
break;
}
} else { for (int j = 0; j < temp.length; j++) {
result = new String();
result += temp[j] + "->";
infoList.add(result);
}
} }
return infoList;
}
如果用图来表示的话,你要先构造节点
伪代码:
Node{
Node(String s,List<Node> l){
this.s=s;
next=l;
}
String s;
List<Node> next;
}用节点构造好这个图可以用递归打印来遍历
PrintGraphics(Node d){
System.out.println(d.s);
for(int i=0;i<d.next.size;i++) PrintGraphics(d.next.get(i));
}
同样一个帖子,在C#区就能得到很好的回答
在java区就会有人告诉你“百度”“谷歌”
我也不是说没代码就没有发言权
只是一般我都会自己实践一下才把问题拿出来跟大家分享的
如果耽搁您时间了 抱歉