由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - google 电面
相关主题
Permutation leetcode-这段word ladder II怎么改?
google电面杯具,贡献题目word break 2的时间复杂度是多少 这个解法
转划单词题的优解PIE题: Phone number to words iterative 解法
一道G家店面题Exposed上一道string permutation的题
leetcode 129Given a string, find all its permutations without any repetition?
leetcode word break II DFS 超时请教leetcode Permutations II 解法和code
请教leetcode上的那道Word Break II,多谢!一道面试题和解法(求指点).
WordLadderII 看到很多解法比较长。 抛砖引玉,求更简洁解法。出道题。perfectPermutation
相关话题的讨论汇总
话题: string话题: int话题: list话题: dict话题: static
进入JobHunting版参与讨论
1 (共1页)
d******4
发帖数: 3
1
问了一个就是dictionary的题:
给一个dictionary:“hello","world","opt","pot";
一个target: "pto",找出dictionary中的"opt" 和"pot"
d******4
发帖数: 3
2
第二题:
给一对票,分别代表出发站和终点站
b-c,c-d,a-b,d-e
排序:
a-b,b-c,c-d,d-e
j*****8
发帖数: 3635
3
这两题看着都还行阿,lz答得如何
l*****a
发帖数: 14598
4
第一题就是pre-processing找anagrams
第二题有点麻烦吧,如果有cycle咋算,另外给定输入一定有结果?

【在 j*****8 的大作中提到】
: 这两题看着都还行阿,lz答得如何
j*****8
发帖数: 3635
5
嗯,从给的例子上看好像都是 end > start
你提的这些点需要和面试官交流一下,

【在 l*****a 的大作中提到】
: 第一题就是pre-processing找anagrams
: 第二题有点麻烦吧,如果有cycle咋算,另外给定输入一定有结果?

w*****5
发帖数: 75
6
第二题topological sorting?
l*****a
发帖数: 14598
7
基本这个意思,但是LZ条件说得不清楚

【在 w*****5 的大作中提到】
: 第二题topological sorting?
y**********a
发帖数: 824
8
第一题:
List anagram(Set dict, String target) {
Map> m=new HashMap<>();
for (String s:dict) {
char[] cc=s.toCharArray();
Arrays.sort(cc);
String key=new String(cc);
if (!m.containsKey(key))
m.put(key, new ArrayList());
m.get(key).add(s);
}
char[]cc=target.toCharArray();
Arrays.sort(cc);
String key=new String(cc);
if (m.containsKey(key)) return m.get(key);
return new ArrayList();
}
第二题:
List topSort(String[] tickets) {
Map m=new HashMap<>();
String start=null;
Comparator c=String.CASE_INSENSITIVE_ORDER;
for (String s:tickets) {
String[] items=s.split("-");
if (start==null)start=items[0];
else start=c.compare(items[0], start)<0?items[0]:start;
m.put(items[0], items[1]);
}
List rel=new ArrayList<>();
for (int i=0;i String s=start,t=m.get(start);
rel.add(s+"-"+t);
start=t;
}
return rel;
}
h****g
发帖数: 105
9
第一题应该是找permutation吧?dictionary可以遍历么?

【在 l*****a 的大作中提到】
: 第一题就是pre-processing找anagrams
: 第二题有点麻烦吧,如果有cycle咋算,另外给定输入一定有结果?

m**p
发帖数: 189
10
如果测试你的代码,你会发现没有考虑有这种票:
b -> d,
b->c,
c->d,
d-> c

【在 y**********a 的大作中提到】
: 第一题:
: List anagram(Set dict, String target) {
: Map> m=new HashMap<>();
: for (String s:dict) {
: char[] cc=s.toCharArray();
: Arrays.sort(cc);
: String key=new String(cc);
: if (!m.containsKey(key))
: m.put(key, new ArrayList());
: m.get(key).add(s);

相关主题
leetcode word break II DFS 超时这段word ladder II怎么改?
请教leetcode上的那道Word Break II,多谢!word break 2的时间复杂度是多少 这个解法
WordLadderII 看到很多解法比较长。 抛砖引玉,求更简洁解法。PIE题: Phone number to words iterative 解法
进入JobHunting版参与讨论
h*******t
发帖数: 2679
11
第一题用几个异或就出来了。
用不着用sort,hash,contains.add这种复杂的操作吧。

【在 y**********a 的大作中提到】
: 第一题:
: List anagram(Set dict, String target) {
: Map> m=new HashMap<>();
: for (String s:dict) {
: char[] cc=s.toCharArray();
: Arrays.sort(cc);
: String key=new String(cc);
: if (!m.containsKey(key))
: m.put(key, new ArrayList());
: m.get(key).add(s);

L*******e
发帖数: 114
12
processing the dictionary seems unnecessary. The dictionary could be huge. I
think get the permutation of target and lookup the dict would be sufficient.

【在 y**********a 的大作中提到】
: 第一题:
: List anagram(Set dict, String target) {
: Map> m=new HashMap<>();
: for (String s:dict) {
: char[] cc=s.toCharArray();
: Arrays.sort(cc);
: String key=new String(cc);
: if (!m.containsKey(key))
: m.put(key, new ArrayList());
: m.get(key).add(s);

W*********y
发帖数: 481
13
为什么第二题看不到了?

【在 d******4 的大作中提到】
: 问了一个就是dictionary的题:
: 给一个dictionary:“hello","world","opt","pot";
: 一个target: "pto",找出dictionary中的"opt" 和"pot"

h*******e
发帖数: 1377
14
题目不清,第一题,target和found string的 啥关系,
第二题, 找出的序列满足什么条件。
给的例子不具有代表性,多给几个例子阿。
d******4
发帖数: 3
15
第一题 找到所有字符相同顺序不同的串
第二题 把所有的票按起始站排序,不是按 a b c的顺序排序

【在 h*******e 的大作中提到】
: 题目不清,第一题,target和found string的 啥关系,
: 第二题, 找出的序列满足什么条件。
: 给的例子不具有代表性,多给几个例子阿。

m*****k
发帖数: 731
16
会有false positive吧

【在 h*******t 的大作中提到】
: 第一题用几个异或就出来了。
: 用不着用sort,hash,contains.add这种复杂的操作吧。

m*****k
发帖数: 731
17
how about
hashmap, sorted as key, words list as value?
<"opt", ["opt","pot"]>

【在 d******4 的大作中提到】
: 第一题 找到所有字符相同顺序不同的串
: 第二题 把所有的票按起始站排序,不是按 a b c的顺序排序

l*******2
发帖数: 36
18
能具体说下怎么用异或做么?

【在 h*******t 的大作中提到】
: 第一题用几个异或就出来了。
: 用不着用sort,hash,contains.add这种复杂的操作吧。

j**********3
发帖数: 3211
19
mark,好像这两题都常见。。。

【在 d******4 的大作中提到】
: 问了一个就是dictionary的题:
: 给一个dictionary:“hello","world","opt","pot";
: 一个target: "pto",找出dictionary中的"opt" 和"pot"

h*******t
发帖数: 2679
20
#include
#include
using namespace std;
char XOR(string s)
{
char result = 0;
for(int i = 0; i result ^= s[i];
return result;
}
int main()
{
char targetXOR = XOR("pto");
string dict[]={"hello", "world", "pot", "opt"};
char result = 0;
for (int i = 0; i {
result = XOR(dict[i]) ^ targetXOR;
if(!result)
cout << dict[i] < }
delete dict;
return 0;
}

【在 l*******2 的大作中提到】
: 能具体说下怎么用异或做么?
相关主题
Exposed上一道string permutation的题一道面试题和解法(求指点).
Given a string, find all its permutations without any repetition?出道题。perfectPermutation
请教leetcode Permutations II 解法和code问一道题(8)
进入JobHunting版参与讨论
a*********8
发帖数: 140
21
ran your program, found that XOR("hello") = 'b', XOR("world") = 'b'
but they are not anagrams
y**********a
发帖数: 824
22

static List anagram(List dict, String target){
int[] st=new int[256], ex=new int[256];
for (char c:target.toCharArray()) ++ex[c];
List rel=new ArrayList<>();
for (String s:dict) {
Arrays.fill(st, 0);
for (char c:s.toCharArray())++st[c];
if (Arrays.equals(st, ex)) rel.add(s);
}
return rel;
}

static List sortTickets(Listtickets) {
String[][] ts=new String[tickets.size()][2];
for (int i=0;i Arrays.sort(ts, new Comparator(){
@Override
public int compare(String[] o1, String[] o2) {
return o1[0].compareTo(o2[0]);
}
});
List rel=new ArrayList<>();
for (int i=0;i return rel;
}

【在 d******4 的大作中提到】
: 第一题 找到所有字符相同顺序不同的串
: 第二题 把所有的票按起始站排序,不是按 a b c的顺序排序

E***1
发帖数: 2534
23
手机党输个Python精简版:
1.
res=[]
for item in dictionary:
if sorted(list(target))==sorted(list(item)):
res.append[item]
return res
2. 定义一个叫Ticket的class,里面含有start和end,人给的那一堆票就是Tickets =
[tix1, tix2, tix3……]
然后:
sorted(Tickets, key=lambda x: x.start)


【在 d******4 的大作中提到】
: 第一题 找到所有字符相同顺序不同的串
: 第二题 把所有的票按起始站排序,不是按 a b c的顺序排序

w********m
发帖数: 1137
24
def q1(dictionary, target):
return [x for x in dictionary if sorted(x) == sorted(target)]
print q1(["hello","world","opt","pot"], 'pto')
def q2(input):
return sorted(input, key = lambda x: (x[0], x[2]))
print q2(['b-c','c-d','a-b','d-e'])
b*****d
发帖数: 39
25
mark
u*******r
发帖数: 864
26
delete 用错了吧?
而且这个异或不能保证出来的结果完全对吧?

【在 h*******t 的大作中提到】
: #include
: #include
: using namespace std;
: char XOR(string s)
: {
: char result = 0;
: for(int i = 0; i: result ^= s[i];
: return result;
: }

m******g
发帖数: 100
27
My solution in Java. Permutation first then search
public class FindInDictionary {

private static int numOfPerm;
private static int index;
private static String [] allPerms;

private static void swap (char[] a, int i, int j){
char c = a[i]; a[i]=a[j]; a[j]=c;
}

//recursive way of creating permutation
private static void permutation (char[] a, int n)
{
if (n==1)
{
// System.out.println(String.valueOf(a));
allPerms [index]=String.valueOf(a);
index ++;
return;
}
for (int i=0;i swap (a,i,n-1);
permutation (a,n-1);
swap (a,i,n-1);
}
}

private static int factorial (int n){
int fact = 1;
for (int i=1;i<=n;i++){
fact *= i;
}
return fact;
}
public static void perm (String s){
if (s==null)
return;
else
{
int n = s.length();
int index = 0;
numOfPerm = factorial(n);
allPerms = new String [numOfPerm];
index = 0;
char[] array = s.toCharArray();
permulation (array,n);
}
}

public static void main(String[] args) {
String [] dict = {"hello", "world", "pot", "opt"};
String target = "pto";
perm (target);
for (String targetStr : allPerms)
{
for (String dictStr : dict)
{
if (targetStr.equals(dictStr) )
System.out.println("match found in dictionary: "+dictStr
);
}
}
}
}
d*r
发帖数: 25
28
反例:“aaa”,“a”
这题复杂度比较低的做法是用26个素数做hash。

【在 h*******t 的大作中提到】
: #include
: #include
: using namespace std;
: char XOR(string s)
: {
: char result = 0;
: for(int i = 0; i: result ^= s[i];
: return result;
: }

1 (共1页)
进入JobHunting版参与讨论
相关主题
出道题。perfectPermutationleetcode 129
问一道题(8)leetcode word break II DFS 超时
F家电面:group Anagrams请教leetcode上的那道Word Break II,多谢!
问一个题目WordLadderII 看到很多解法比较长。 抛砖引玉,求更简洁解法。
Permutation leetcode-这段word ladder II怎么改?
google电面杯具,贡献题目word break 2的时间复杂度是多少 这个解法
转划单词题的优解PIE题: Phone number to words iterative 解法
一道G家店面题Exposed上一道string permutation的题
相关话题的讨论汇总
话题: string话题: int话题: list话题: dict话题: static