美国境内发个2lb的文件用什么快递比较便宜呢# PennySaver - 省钱一族
c*e
1 楼
public class Solution {
class Record {
Record prev;
String cur;
public Record(Record prev, String cur) {
this.prev = prev;
this.cur = cur;
}
}
public List
class Record {
Record prev;
String cur;
public Record(Record prev, String cur) {
this.prev = prev;
this.cur = cur;
}
}
public List
- > findLadders(String start, String end, Set<
String> dict) {
List
- > r = new LinkedList
- >();
if (start == null || end == null || dict == null || start.length() =
= 0 || start.length() != end.length()) {
return r;
}
Queue
Set
p.add(new Record(null, start));
used.add(start);
while(!p.isEmpty()) {
Queue
Set
for(Record record: p) {
String cur = record.cur;
for (int i = 0; i < cur.length(); i++) {
String left = cur.substring(0, i);
String right = cur.substring(i+1);
for (char c='a'; c <='z'; c++) {
if (c != cur.charAt(i)) {
String n = left + String.valueOf(c) + right;
if (n.equals(end)) {
List
path.add(end);
Record r0 = record;
while(r0 != null) {
path.add(0, r0.cur);
r0 = r0.prev;
}
r.add(path);
} else if (dict.contains(n) && !used.contains(n)
) {
p2.add(new Record(record, n));
level_used.add(n);
}
}
}
}
}
if (!r.isEmpty()) return r;
p = p2;
used.addAll(level_used);
}
return r;
}
}