Redian新闻
>
小土猫捕猎记+推荐俩廉价玩具
avatar
小土猫捕猎记+推荐俩廉价玩具# pets - 心有所宠
w*x
1
两个大数相乘
char* multiply(char*,char*);
正常在15分钟写出的解法有吗, 不能转integer再乘啊
avatar
N*t
2
1)小土猫四月的第一个大鸟解体后半个月,第二第三个大鸟陆续光荣牺牲。穷妈我掰
指头一算,这可不成,这样下去非让她给玩破产了不可。于是翻箱底找出这个老玩具,
其实就是一根铁丝上串了几个小纸筒子,稍稍有点动手能力的同学们应该不难自制。这
玩意刚买回来的时候反响一般般,于是压了箱底。现今再拿出来,居然挑逗得猫激愤无
比,满屋子追着上蹿下跳,丝毫不输于大鸟。这个玩具的特别之处在于那根铁丝,让小
纸筒不可预测的弹来跳去,像只半空中的大飞虫。
http://www.amazon.com/gp/product/B0006N9I68
2)顺便推荐这个塑料弹簧,弹跳力很强,很适合猫在硬地板上玩。
http://www.amazon.com/gp/product/B000CMKHDG
图片:地点是一个还没有扔掉的旧床垫,自从某日四月发现可以爬上去后就一发不可收
拾,床垫表面有无数小指甲洞作为血泪的见证。
最后一张图片是凑数,今天看到某前辈老警察说发九张图三个包子,我有留贴为证~!
avatar
w*o
3
能具体的讲讲这个题是什么东西吗?
是不是说给了两个字符串,每个都是代表了一个很长的10进制表示的数?
比如 char str1[] = "23456789009877666555544444"
char str2[] = "346587436598437594375943875943875"
最后求出他们的乘积?

【在 w****x 的大作中提到】
: 两个大数相乘
: char* multiply(char*,char*);
: 正常在15分钟写出的解法有吗, 不能转integer再乘啊

avatar
X*U
4
omg
sf
avatar
w*x
5



【在 w****o 的大作中提到】
: 能具体的讲讲这个题是什么东西吗?
: 是不是说给了两个字符串,每个都是代表了一个很长的10进制表示的数?
: 比如 char str1[] = "23456789009877666555544444"
: char str2[] = "346587436598437594375943875943875"
: 最后求出他们的乘积?

avatar
p*f
6
嗯,da bird 模仿鸟类,cat dancer 模仿昆虫,都是猫的大爱。
avatar
c*p
7
就是实现乘法的竖式实现吧。
把两个操作数按一位、两位、三位或者四位十进制数(取决于int类型的大小)分割,
存储成整弄数组,然后按照做乘法的步骤算一遍。空间复杂度O(m+n),时间复杂度O(mn
),mn为两操作数的长度。【 在 wwwyhx (wwwyhx) 的大作中提到: 】
avatar
X*U
8
我咋脚的最后一张更出彩啊
埃及法老猫啊
avatar
z*c
9
这是Leetcode上Multiplication那道题的程序,过了数据
string multiply(string num1, string num2) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
vector res(num1.size () + num2.size (), 0);
for (int i = 0; i < num1.size (); i++) {
int carry = 0;
for (int j = 0; j < num2.size (); j++) {
int d1 = num1[num1.size () - 1 - i] - '0';
int d2 = num2[num2.size () - 1 - j] - '0';
carry = d1 * d2 + res[i + j] + carry;
res[i + j] = carry % 10;
carry = carry / 10;
}
res[i + num2.size ()] = carry;
}

int i = num1.size () + num2.size () - 1;
while (i > 0 && res[i] == 0) i--;
string result;
while (i >= 0) result += char (res[i --] + '0');

return result;
}

【在 w****x 的大作中提到】
: 两个大数相乘
: char* multiply(char*,char*);
: 正常在15分钟写出的解法有吗, 不能转integer再乘啊

avatar
s*n
10
绒布条做的cat dancer最好,撕不坏,还能洗,能用很久
http://www.petco.com/product/5980/Cat-Dancer-Cat-Charmer.aspx?C

【在 N******t 的大作中提到】
: 1)小土猫四月的第一个大鸟解体后半个月,第二第三个大鸟陆续光荣牺牲。穷妈我掰
: 指头一算,这可不成,这样下去非让她给玩破产了不可。于是翻箱底找出这个老玩具,
: 其实就是一根铁丝上串了几个小纸筒子,稍稍有点动手能力的同学们应该不难自制。这
: 玩意刚买回来的时候反响一般般,于是压了箱底。现今再拿出来,居然挑逗得猫激愤无
: 比,满屋子追着上蹿下跳,丝毫不输于大鸟。这个玩具的特别之处在于那根铁丝,让小
: 纸筒不可预测的弹来跳去,像只半空中的大飞虫。
: http://www.amazon.com/gp/product/B0006N9I68
: 2)顺便推荐这个塑料弹簧,弹跳力很强,很适合猫在硬地板上玩。
: http://www.amazon.com/gp/product/B000CMKHDG
: 图片:地点是一个还没有扔掉的旧床垫,自从某日四月发现可以爬上去后就一发不可收

avatar
t*7
11
就是数组实现乘法竖式吧... 但是要考虑数组空间的上限越界么?..
avatar
m*1
13
请问你code里的
int d1 = num1[num1.size () - 1 - i] - '0';
int d2 = num2[num2.size () - 1 - j] - '0';
那个减去 '0' 是干什么用的呢?

【在 z********c 的大作中提到】
: 这是Leetcode上Multiplication那道题的程序,过了数据
: string multiply(string num1, string num2) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: vector res(num1.size () + num2.size (), 0);
: for (int i = 0; i < num1.size (); i++) {
: int carry = 0;
: for (int j = 0; j < num2.size (); j++) {
: int d1 = num1[num1.size () - 1 - i] - '0';
: int d2 = num2[num2.size () - 1 - j] - '0';

avatar
K*t
14
不错~

【在 N******t 的大作中提到】
: 1)小土猫四月的第一个大鸟解体后半个月,第二第三个大鸟陆续光荣牺牲。穷妈我掰
: 指头一算,这可不成,这样下去非让她给玩破产了不可。于是翻箱底找出这个老玩具,
: 其实就是一根铁丝上串了几个小纸筒子,稍稍有点动手能力的同学们应该不难自制。这
: 玩意刚买回来的时候反响一般般,于是压了箱底。现今再拿出来,居然挑逗得猫激愤无
: 比,满屋子追着上蹿下跳,丝毫不输于大鸟。这个玩具的特别之处在于那根铁丝,让小
: 纸筒不可预测的弹来跳去,像只半空中的大飞虫。
: http://www.amazon.com/gp/product/B0006N9I68
: 2)顺便推荐这个塑料弹簧,弹跳力很强,很适合猫在硬地板上玩。
: http://www.amazon.com/gp/product/B000CMKHDG
: 图片:地点是一个还没有扔掉的旧床垫,自从某日四月发现可以爬上去后就一发不可收

avatar
e*l
15
字符数字转换为整数数字,'0'代表0的ascii码
avatar
N*t
16

那个那个,本来她蹲在那看鼠,脖子伸得老长,特ws特ws
我给逗乐了,去拿相机,一回头她居然瞬间变成这副高贵典雅样 -_-

【在 X*U 的大作中提到】
: 我咋脚的最后一张更出彩啊
: 埃及法老猫啊

avatar
m*1
17
嗯,谢谢啦

【在 e***l 的大作中提到】
: 字符数字转换为整数数字,'0'代表0的ascii码
avatar
l*e
18
可爱!
avatar
n*e
19
signus?
avatar
s*n
20
我家猫还可以,不知是不是因为没玩儿过大鸟。

【在 N******t 的大作中提到】
:
: 那个那个,本来她蹲在那看鼠,脖子伸得老长,特ws特ws
: 我给逗乐了,去拿相机,一回头她居然瞬间变成这副高贵典雅样 -_-

avatar
l*i
21
面世问这个比较变态把,没有任何技术含量,就是别错。string倒过来放,负号先拿掉
,返回pointer先malloc/new。还有什么注意事项么。
uva上有一道题要算满足一定条件的加()种数,recursion很快就写出来了,然后就要用
这个arbitrary precision integer arithmetic。写了个char*的结果TLE无数次。最后
有个大牛hint用vector,然后每个int可以一次算9位数字,结果轻松过。
去年还是前年的google codejam qual有一道题是用这个的,neal_wu的code可以用来学
习。
avatar
X*U
22
把背景PS掉,是个很不错的肖像照啊

【在 N******t 的大作中提到】
:
: 那个那个,本来她蹲在那看鼠,脖子伸得老长,特ws特ws
: 我给逗乐了,去拿相机,一回头她居然瞬间变成这副高贵典雅样 -_-

avatar
w*x
23

靠, 太扯了, 15分钟电面谁TMD 15分钟想的出这个解法, 而且只会c语言的根本很难做, 电面出
这个题的人脑袋没问题吧!!!
没想出这个解法的就是我下面的这种烂code:
string Multiple(string str1, string str2)
{
assert(str1.size() > 0 && str2.size() > 0);
string strRes;
for (int i = str2.size() - 1; i >= 0; i--)
{
int nAdd = 0;
string strCur;
for (int j = str1.size() - 1; j >= 0; j--)
{
int nTmpI = str2[i] - '0';
int nTmpJ = str1[j] - '0';
int nRes = nTmpJ * nTmpI + nAdd;
nAdd = nRes / 10;
strCur.insert(strCur.begin(), nRes%10 + '0');
}
if (nAdd > 0) //missing
strCur.insert(strCur.end(), nAdd + '0');
if (strRes.empty())
{
strRes = strCur;
continue;
}
strCur.insert(strCur.end(), '0');
nAdd = 0;
int nRes = strRes.size() - 1;
int nCur = strCur.size() - 1;

string strTmpRes;
while (nCur >= 0 && nRes >= 0)
{
int nTmpCur = strCur[nCur] - '0';
int nTmpRes = strRes[nRes] - '0';
int nDigit = nTmpCur + nTmpRes + nAdd;
nAdd = nDigit / 10;
strTmpRes.insert(strTmpRes.begin(), nDigit%10 + '0');
nRes--, nCur--;
}
if (nRes >= 0)
{
while (nRes >= 0)
{
int nTmpRes = strRes[nRes] - '0';
int nDigit = nTmpRes + nAdd;
nAdd = nDigit / 10;
strTmpRes.insert(strTmpRes.begin(), nDigit%10 + '0');
nRes--;
}
if (nAdd > 0) strTmpRes.insert(strTmpRes.begin(),
'1');//missing
}

if (nCur >= 0)
{
while (nCur >= 0)
{
int nTmpRes = strCur[nCur] - '0';
int nDigit = nTmpRes + nAdd;
nAdd = nDigit / 10;
strTmpRes.insert(strTmpRes.begin(), nDigit%10 + '0');
nCur--;
}
if (nAdd > 0) strTmpRes.insert(strTmpRes.begin(),
'1');//missing
}
strRes = strTmpRes;
}
return strRes;
}

【在 z********c 的大作中提到】
: 这是Leetcode上Multiplication那道题的程序,过了数据
: string multiply(string num1, string num2) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: vector res(num1.size () + num2.size (), 0);
: for (int i = 0; i < num1.size (); i++) {
: int carry = 0;
: for (int j = 0; j < num2.size (); j++) {
: int d1 = num1[num1.size () - 1 - i] - '0';
: int d2 = num2[num2.size () - 1 - j] - '0';

avatar
P*A
24
mark一个帖子只有一个包子的
solution:版务可以给LZ自己的随便哪个跟帖也mark凑数

【在 N******t 的大作中提到】
:
: 那个那个,本来她蹲在那看鼠,脖子伸得老长,特ws特ws
: 我给逗乐了,去拿相机,一回头她居然瞬间变成这副高贵典雅样 -_-

avatar
m*n
25
呵呵,这个其实比较容易。先写一个字符串相加的方法,
然后用小学学过的办法,一位一位来。。
不过15分钟有点夸张。
avatar
N*t
26
晕 东有东家语西有西家语,还是只拿了一个包子 =(
avatar
a*g
27
这题很难写完一次通过编译
15分钟有点扯。。。
avatar
X*U
28
一天只能m 10个带奖励的...

【在 P**A 的大作中提到】
: mark一个帖子只有一个包子的
: solution:版务可以给LZ自己的随便哪个跟帖也mark凑数

avatar
c*p
29
这个用C写也不难吧。

做, 电面出

【在 w****x 的大作中提到】
:
: 靠, 太扯了, 15分钟电面谁TMD 15分钟想的出这个解法, 而且只会c语言的根本很难做, 电面出
: 这个题的人脑袋没问题吧!!!
: 没想出这个解法的就是我下面的这种烂code:
: string Multiple(string str1, string str2)
: {
: assert(str1.size() > 0 && str2.size() > 0);
: string strRes;
: for (int i = str2.size() - 1; i >= 0; i--)
: {

avatar
N*t
30

一共吗?那第11个发图的人岂不是被黑了

【在 X*U 的大作中提到】
: 一天只能m 10个带奖励的...
avatar
p*2
31

C麻烦就在分配内存的时候不知道分多少。如果用char[], 进位的时候就不够空间了。

【在 c****p 的大作中提到】
: 这个用C写也不难吧。
:
: 做, 电面出

avatar
N*t
32

太笨了,不会整。。
(嫩嫌弃我家背景不好看??哼哼)

【在 X*U 的大作中提到】
: 把背景PS掉,是个很不错的肖像照啊
avatar
c*p
33
这样空间和时间效率都不好。
考虑到现在int一般是32位(4e9),
每个int元素可以存多位十进制数。
这样的话,单次int乘法的复杂度没有变化,
但是总的乘法次数下降了,使用空间也相应下降了。【 在 zhangchitc (zhangchitc)
的大作中提到: 】
avatar
N*t
34

进大鸟,赶紧的~~

【在 s******n 的大作中提到】
: 我家猫还可以,不知是不是因为没玩儿过大鸟。
avatar
c*p
35
m*n位,结果长度不会超过m+n-1位啊。

【在 p*****2 的大作中提到】
:
: C麻烦就在分配内存的时候不知道分多少。如果用char[], 进位的时候就不够空间了。

avatar
P*A
36
佩慈上限早就是50了

【在 X*U 的大作中提到】
: 一天只能m 10个带奖励的...
avatar
w*x
37

)
15分钟....

【在 c****p 的大作中提到】
: 这样空间和时间效率都不好。
: 考虑到现在int一般是32位(4e9),
: 每个int元素可以存多位十进制数。
: 这样的话,单次int乘法的复杂度没有变化,
: 但是总的乘法次数下降了,使用空间也相应下降了。【 在 zhangchitc (zhangchitc)
: 的大作中提到: 】

avatar
X*U
38
啊,那我们版应该也是,不过我们很少m
版面金库比较充裕, 包子都是搞活动的时候发

【在 P**A 的大作中提到】
: 佩慈上限早就是50了
avatar
p*2
39

应该不会超过m+n吧?比如9*9=81, 占两位。
是这样子的。不过写的时候要考虑很多小细节,真的不容易bug free。至少跟java比要
麻烦不少。

【在 c****p 的大作中提到】
: m*n位,结果长度不会超过m+n-1位啊。
avatar
P*A
40
活动包子直接问钻风要啊。。。

【在 X*U 的大作中提到】
: 啊,那我们版应该也是,不过我们很少m
: 版面金库比较充裕, 包子都是搞活动的时候发

avatar
c*p
41
这题是POJ 1001的一个子算法。

【在 w****x 的大作中提到】
:
: )
: 15分钟....

avatar
K*t
42
你记得我的10个包子啊

【在 X*U 的大作中提到】
: 啊,那我们版应该也是,不过我们很少m
: 版面金库比较充裕, 包子都是搞活动的时候发

avatar
c*p
43
而且这题基本没有什么tricky的地方吧。。
时间紧的话可以先说你知道有哪些corner case,但是时间比较紧,这里假设两个字符串
符合XX的通用格式。
然后开始照着思路写。。。【 在 wwwyhx (wwwyhx) 的大作中提到: 】
avatar
N*t
44
钻风是谁。。?
avatar
p*2
45

练过当然要好多了。如果做过几遍是可以15分钟完成。但是如果没做过的话,难度还是
蛮高吧?

【在 c****p 的大作中提到】
: 这题是POJ 1001的一个子算法。
avatar
P*A
46
站务id mitbbs,首页上面那些恶趣味的帖子都是ta干的

【在 N******t 的大作中提到】
: 钻风是谁。。?
avatar
c*p
47
写bug free的可能是用点难。
不过核心代码并不长。

【在 p*****2 的大作中提到】
:
: 练过当然要好多了。如果做过几遍是可以15分钟完成。但是如果没做过的话,难度还是
: 蛮高吧?

avatar
X*U
48
我说了,你要去我们版上挖出个十大坑出来,包子肯定给,

【在 K******t 的大作中提到】
: 你记得我的10个包子啊
avatar
p*2
49

这个有时间还得练练。

【在 c****p 的大作中提到】
: 写bug free的可能是用点难。
: 不过核心代码并不长。

avatar
X*U
50
他看到我们版的小金库,是肯定不给的。。。

【在 P**A 的大作中提到】
: 活动包子直接问钻风要啊。。。
avatar
w*x
51

说实话, 我不大信没做过几遍原题能15分钟写完, 大家也不是搞ACM竞赛的

【在 c****p 的大作中提到】
: 写bug free的可能是用点难。
: 不过核心代码并不长。

avatar
N*t
52

lol
嗯。。那个。。这个人和老刑有关系嘛??

【在 P**A 的大作中提到】
: 站务id mitbbs,首页上面那些恶趣味的帖子都是ta干的
avatar
s*u
53
mark
avatar
P*A
54
老邢的打工仔/小米。。

【在 N******t 的大作中提到】
:
: lol
: 嗯。。那个。。这个人和老刑有关系嘛??

avatar
s*f
55
//码遍本版
//i cannot get this should-be-right version within 15 minutes
//use reversed storage. say 1345 store as "5431"
char* MultiplyString(char *a,char *b){
if (!a || !b)
return NULL;
int la = strlen(a);
int lb = strlen(b);
int lc = la + lb + 1;
char *ret = new char[lc];
char *r = ret;
memset(ret, '\0', lc);
while (*a){
char *p = b;
char *q = r++;
int inc = 0;
int mul = *a - '0';
while (*p){
int qq = *q?(*q - '0'):0;
int m0 = mul * (*p - '0') + qq + inc;
*q++ = (char)(m0 % 10 + '0');
inc = m0 / 10;
++p;
}
while (inc != 0){
int qq = *q?(*q - '0'):0;
int m1 = qq + inc;
*q++ = (char)(m1 % 10 + '0');
inc = m1 / 10;
}
++a;
}
//test
printf("%s\n", ret);
return ret;
}
void TestMultiplyString(){
char *a = MultiplyString("12", "10");
char *b = MultiplyString("12", "0");
char *c = MultiplyString("2", "10");
char *d = MultiplyString("1216494413148", "17673735345330");
char *e = MultiplyString("2803", "456");
}

【在 w****x 的大作中提到】
: 两个大数相乘
: char* multiply(char*,char*);
: 正常在15分钟写出的解法有吗, 不能转integer再乘啊

avatar
K*t
56
PALA走 挖坑去!

【在 X*U 的大作中提到】
: 我说了,你要去我们版上挖出个十大坑出来,包子肯定给,
avatar
h*e
57
这道题目如果真是FB的高频题,那就硬背一个最简洁的解法吧。
avatar
P*A
58
能者多劳,你去吧
我先去买饭了来围观

【在 K******t 的大作中提到】
: PALA走 挖坑去!
avatar
r*e
59
背哪个呢?
弄个大数加法考考字符串操作也就罢了,乘法真没什么意思。

【在 h****e 的大作中提到】
: 这道题目如果真是FB的高频题,那就硬背一个最简洁的解法吧。
avatar
N*t
60

我去帮灌有包子分没??

【在 K******t 的大作中提到】
: PALA走 挖坑去!
avatar
X*U
61
你做了贡献,看兮若妈愿意不愿意从10个包子里给你分一个了

【在 N******t 的大作中提到】
:
: 我去帮灌有包子分没??

avatar
N*t
62

铁公鸡上拔毛。。//run

【在 X*U 的大作中提到】
: 你做了贡献,看兮若妈愿意不愿意从10个包子里给你分一个了
avatar
X*U
63
这你就冤枉我了,你如果去挖个十大坑,我也给你10包子
你去灌兮若妈的坑,那是帮她上十大,拿奖金,当然应该找她要啊。

【在 N******t 的大作中提到】
:
: 铁公鸡上拔毛。。//run

avatar
N*t
64

她也是铁公鸡。。//run

【在 X*U 的大作中提到】
: 这你就冤枉我了,你如果去挖个十大坑,我也给你10包子
: 你去灌兮若妈的坑,那是帮她上十大,拿奖金,当然应该找她要啊。

avatar
K*t
65
lol

【在 N******t 的大作中提到】
:
: 她也是铁公鸡。。//run

avatar
h*r
66
背景里是什么?巨大的皮卡丘么?

【在 N******t 的大作中提到】
:
: 她也是铁公鸡。。//run

avatar
N*t
67

巨大的hamster,朋友来俺家看hamster们时候带的。。

【在 h********r 的大作中提到】
: 背景里是什么?巨大的皮卡丘么?
avatar
m*8
68
小脚丫好可爱啊。。。。
avatar
N*t
69

hoho thanks~ 三个爪都是踩过炭的,就这一个红爪,俺们很以此为傲di~

【在 m******8 的大作中提到】
: 小脚丫好可爱啊。。。。
avatar
f*n
70
最后一张的表情很到位
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。