|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
d******3 发帖数: 232 | 39 me baiban + computer + messed-up papers :DDDDD |
|
Z**********4 发帖数: 528 | 40 可以详细说说你怎么使用BFS嘛?
我看了一下你的解法,大概理解但是还是有疑问。比如这样的例子你的解法怎么计算?
target: abcde 字典:[aaaaa, bbbbb, ccccc, ddddd, eeeee]
我的想法跟你差不多不过是按照行进行编码(你把一个位置的放到一个数组里面,我一
个单词就是一个二进制如下):
比如target apple [amble, plain] 这里amble就是10011 plain就是00000。
然后我们需要找到apple的一个最短abbr X满足一定的条件。
X也是可以对应二进制的,比如5就相当于00000 a4相当于10000 4e相当于00001
ap3相当于11000
你就会发现符合条件的X是满足X|dict[i] != dict[i] (i is any binary code in
dict)
比如你看a4在这里就不行因为10000 | 10011 == 10011 所以必须用1p3才能最短。
知道这个以后就把apple的各种缩写进行遍历,找到第一个不喝dict里面的binaries冲
突的就行。
复杂度2^(targ... 阅读全帖 |
|
m*****n 发帖数: 2152 | 41 target: abcde 字典:[aaaaa, bbbbb, ccccc, ddddd, eeeee]
编码是[[10000],[01000],[00100],[00010],[00001]]所以最小的是取任意 两个row
and就可以了。但是要优先取头尾两个row,原因上面说过了。所以这题答案是ab3, 3de
, a3e都行,其他的如a1c2,等等,abbr度不够, |
|
b***p 发帖数: 700 | 42 这个行吗?
#!/usr/bin/python
class WordAbbr:
def __init__(self):
pass
def word_abbr(self, word, start, len_abbr):
if len(word) < start + len_abbr:
return False
return word[:start] + word[start+len_abbr:]
def solution(self, word, list_words):
word_len = len(word)
for i in range(word_len - 1):
len_abbr = word_len - i
for j in range(word_len + 1 - len_abbr):
word_abbr = self.word_abbr(word, j, len_abb... 阅读全帖 |
|
Z**********4 发帖数: 528 | 43 可以详细说说你怎么使用BFS嘛?
我看了一下你的解法,大概理解但是还是有疑问。比如这样的例子你的解法怎么计算?
target: abcde 字典:[aaaaa, bbbbb, ccccc, ddddd, eeeee]
我的想法跟你差不多不过是按照行进行编码(你把一个位置的放到一个数组里面,我一
个单词就是一个二进制如下):
比如target apple [amble, plain] 这里amble就是10011 plain就是00000。
然后我们需要找到apple的一个最短abbr X满足一定的条件。
X也是可以对应二进制的,比如5就相当于00000 a4相当于10000 4e相当于00001
ap3相当于11000
你就会发现符合条件的X是满足X|dict[i] != dict[i] (i is any binary code in
dict)
比如你看a4在这里就不行因为10000 | 10011 == 10011 所以必须用1p3才能最短。
知道这个以后就把apple的各种缩写进行遍历,找到第一个不喝dict里面的binaries冲
突的就行。
复杂度2^(targ... 阅读全帖 |
|
m*****n 发帖数: 2152 | 44 target: abcde 字典:[aaaaa, bbbbb, ccccc, ddddd, eeeee]
编码是[[10000],[01000],[00100],[00010],[00001]]所以最小的是取任意 两个row
and就可以了。但是要优先取头尾两个row,原因上面说过了。所以这题答案是ab3, 3de
, a3e都行,其他的如a1c2,等等,abbr度不够, |
|
b***p 发帖数: 700 | 45 这个行吗?
#!/usr/bin/python
class WordAbbr:
def __init__(self):
pass
def word_abbr(self, word, start, len_abbr):
if len(word) < start + len_abbr:
return False
return word[:start] + word[start+len_abbr:]
def solution(self, word, list_words):
word_len = len(word)
for i in range(word_len - 1):
len_abbr = word_len - i
for j in range(word_len + 1 - len_abbr):
word_abbr = self.word_abbr(word, j, len_abb... 阅读全帖 |
|
y*****i 发帖数: 141 | 46 照着Maxthon的编码解法写了一个:
#include
#include
#include
#include
using namespace std;
bool bool_vec_none(const vector & vec) {
for(auto elem : vec) {
if (elem) {
return false;
}
}
return true;
}
bool bool_vec_all(const vector & vec) {
for(auto elem : vec) {
if (!elem) {
return false;
}
}
return true;
}
string word_abbreviation(string target, vector dict)
{
if (t... 阅读全帖 |
|
|
|
w********g 发帖数: 25 | 49 来自主题: NextGeneration版 - 转e家奶票 ddddd |
|
s*********g 发帖数: 2350 | 50 1) 全部选Top Left ---> $4
2) 全部选Top right ---> $2
3) 全部选bottom Left ---> $4
4) 全部选bottom right ---> $2
如果以A,B, C, D 分别表示 Top Left, Top Right, bottom Left,bottom right,
以下pattern 可打出1.5胖子
5) AAAAA-AAABB $1.5 Hello
6) DDDDD-DDCCC $1.5 Exc |
|