w****x 发帖数: 2483 | 1 直接贴Google doc了
Given a word, print out all the combinations of words from the letters that
make it. For example:
bad: abd adb bda dab dba
void _inner_print(char str[], int len, int pos)
{
if (pos == len)
{
cout<
return;
}
for (int i = pos; i < len; i++)
{
swap(str[pos], str[i]);
_inner_print(str, len, pos+1);
swap(str[pos], str[i]);
}
}
Input: bad
step 1: 3, i = 0 - bad
step 2.: 3, i = 1 - abd
step 2.: 3, i = 2 - dabchar
void printAllPermutation(const char* str)
{
if (NULL == str || 0 == *str)
return;
int nLen = strlen(str);
char* strTmp = new char[nLen+1];
strcpy(strTmp, str);
_inner_print(strTmp, nLen, 0);
delete [] strTMp;
}
Serialize a list of strings to a file
Input is a file, an array of string pointers and number of elements in the
array. Serialize all the strings in the given file.
bool serializeStrList(const char* strs[], int n, const char* szFileName)
{
if (NULL == strs || n <= 0 || NULL == szFile)
return false;
FILE* pf = fopen(szFileName, ‘r’);
if (NULL == pf)
return false;
for (int i = 0; i < n; i++)
{
int nWrite = strlen(strs[i]) + 1;
int nWriten = 0;
while (nWriten < nWrite)
nWriten += fwrite(strs[i], nWrite, sizeof(char), pf);
}
fclose(pf);
return true;
}
fwrite() |
j*****y 发帖数: 1071 | 2 thanks。 你的第一题的code感觉有点问题, swap 以后,应该 swap 回来
for (int i = pos; i < len; i++)
{
swap(str[pos], str[i]);
_inner_print(str, len, pos+1);
swap(str[pos], str[i]);
swap(str[pos], str[i]);
}
Given a word, print out all the combinations of words from the letters that
make it. For example:
bad: abd adb bda dab dba
void _inner_print(char str[], int len, int pos)
{
if (pos == len)
{
cout<
return;
}
for (int i = pos; i < len; i++)
{
swap(str[pos], str[i]);
_inner_print(str, len, pos+1);
swap(str[pos], str[i]);
}
}
Input: bad
step 1: 3, i = 0 - bad
step 2.: 3, i = 1 - abd
step 2.: 3, i = 2 - dabchar
void printAllPermutation(const char* str)
{
if (NULL == str || 0 == *str)
return;
int nLen = strlen(str);
char* strTmp = new char[nLen+1];
strcpy(strTmp, str);
_inner_print(strTmp, nLen, 0);
delete [] strTMp;
}
【在 w****x 的大作中提到】 : 直接贴Google doc了 : Given a word, print out all the combinations of words from the letters that : make it. For example: : bad: abd adb bda dab dba : void _inner_print(char str[], int len, int pos) : { : if (pos == len) : { : cout<: return;
|
w****x 发帖数: 2483 | 3
that
有swap回来
【在 j*****y 的大作中提到】 : thanks。 你的第一题的code感觉有点问题, swap 以后,应该 swap 回来 : for (int i = pos; i < len; i++) : { : swap(str[pos], str[i]); : _inner_print(str, len, pos+1); : swap(str[pos], str[i]); : swap(str[pos], str[i]); : } : : Given a word, print out all the combinations of words from the letters that
|
j*****y 发帖数: 1071 | 4 没看到,呵呵. sorry :)
【在 w****x 的大作中提到】 : : that : 有swap回来
|
j*****y 发帖数: 1071 | 5 第二题 deserialize的话就是通过 '\0'来分开,是吧.
that
【在 w****x 的大作中提到】 : 直接贴Google doc了 : Given a word, print out all the combinations of words from the letters that : make it. For example: : bad: abd adb bda dab dba : void _inner_print(char str[], int len, int pos) : { : if (pos == len) : { : cout<: return;
|
j*****y 发帖数: 1071 | 6 第二题我习惯用 fstream
ofstream file(inputFile);
for(int i = 0; i < n; ++i)
{
string s(array[i]);
s.append(1, '\0');
file<< s;
}
file.close();
【在 j*****y 的大作中提到】 : 第二题 deserialize的话就是通过 '\0'来分开,是吧. : : that
|
j*****y 发帖数: 1071 | 7 不过感觉 s.append(1, '\0') 有点问题.
【在 j*****y 的大作中提到】 : 第二题我习惯用 fstream : ofstream file(inputFile); : for(int i = 0; i < n; ++i) : { : string s(array[i]); : s.append(1, '\0'); : file<< s; : } : file.close();
|
p*****2 发帖数: 21240 | 8 第一题combination 还是permutation呢?需要考虑字母重复吗? |
p*****2 发帖数: 21240 | 9 第一题练习
object test2 extends App {
val word="bad"
word.permutations.foreach(println)
}
bad
bda
abd
adb
dba
dab |
j*****y 发帖数: 1071 | 10 这个肯定不能拿来面试吧?呵呵
【在 p*****2 的大作中提到】 : 第一题练习 : object test2 extends App { : val word="bad" : word.permutations.foreach(println) : } : bad : bda : abd : adb : dba
|
|
|
j*****y 发帖数: 1071 | 11 好像也没问题 :)
【在 j*****y 的大作中提到】 : 不过感觉 s.append(1, '\0') 有点问题.
|
c********t 发帖数: 5706 | 12 scala? cheater!
【在 p*****2 的大作中提到】 : 第一题练习 : object test2 extends App { : val word="bad" : word.permutations.foreach(println) : } : bad : bda : abd : adb : dba
|
p*****2 发帖数: 21240 | 13
scala应该怎么面试?
【在 j*****y 的大作中提到】 : 这个肯定不能拿来面试吧?呵呵
|
t*********h 发帖数: 941 | 14 牛叉 拜伏
【在 p*****2 的大作中提到】 : 第一题练习 : object test2 extends App { : val word="bad" : word.permutations.foreach(println) : } : bad : bda : abd : adb : dba
|
k***x 发帖数: 6799 | 15 悟空你又调皮了。。。
【在 p*****2 的大作中提到】 : 第一题练习 : object test2 extends App { : val word="bad" : word.permutations.foreach(println) : } : bad : bda : abd : adb : dba
|
t****a 发帖数: 1212 | 16 号召大家像楼主学习啊,头像多赏心悦目
that
【在 w****x 的大作中提到】 : 直接贴Google doc了 : Given a word, print out all the combinations of words from the letters that : make it. For example: : bad: abd adb bda dab dba : void _inner_print(char str[], int len, int pos) : { : if (pos == len) : { : cout<: return;
|
c*****a 发帖数: 808 | 17 google doc啊...
要自己敲space indentation...... |
Q*******e 发帖数: 939 | 18 现在面试都改scala了?
【在 p*****2 的大作中提到】 : 第一题练习 : object test2 extends App { : val word="bad" : word.permutations.foreach(println) : } : bad : bda : abd : adb : dba
|