N*t
2 楼
1)小土猫四月的第一个大鸟解体后半个月,第二第三个大鸟陆续光荣牺牲。穷妈我掰
指头一算,这可不成,这样下去非让她给玩破产了不可。于是翻箱底找出这个老玩具,
其实就是一根铁丝上串了几个小纸筒子,稍稍有点动手能力的同学们应该不难自制。这
玩意刚买回来的时候反响一般般,于是压了箱底。现今再拿出来,居然挑逗得猫激愤无
比,满屋子追着上蹿下跳,丝毫不输于大鸟。这个玩具的特别之处在于那根铁丝,让小
纸筒不可预测的弹来跳去,像只半空中的大飞虫。
http://www.amazon.com/gp/product/B0006N9I68
2)顺便推荐这个塑料弹簧,弹跳力很强,很适合猫在硬地板上玩。
http://www.amazon.com/gp/product/B000CMKHDG
图片:地点是一个还没有扔掉的旧床垫,自从某日四月发现可以爬上去后就一发不可收
拾,床垫表面有无数小指甲洞作为血泪的见证。
最后一张图片是凑数,今天看到某前辈老警察说发九张图三个包子,我有留贴为证~!
!
指头一算,这可不成,这样下去非让她给玩破产了不可。于是翻箱底找出这个老玩具,
其实就是一根铁丝上串了几个小纸筒子,稍稍有点动手能力的同学们应该不难自制。这
玩意刚买回来的时候反响一般般,于是压了箱底。现今再拿出来,居然挑逗得猫激愤无
比,满屋子追着上蹿下跳,丝毫不输于大鸟。这个玩具的特别之处在于那根铁丝,让小
纸筒不可预测的弹来跳去,像只半空中的大飞虫。
http://www.amazon.com/gp/product/B0006N9I68
2)顺便推荐这个塑料弹簧,弹跳力很强,很适合猫在硬地板上玩。
http://www.amazon.com/gp/product/B000CMKHDG
图片:地点是一个还没有扔掉的旧床垫,自从某日四月发现可以爬上去后就一发不可收
拾,床垫表面有无数小指甲洞作为血泪的见证。
最后一张图片是凑数,今天看到某前辈老警察说发九张图三个包子,我有留贴为证~!
!
X*U
4 楼
omg
sf
sf
p*f
6 楼
嗯,da bird 模仿鸟类,cat dancer 模仿昆虫,都是猫的大爱。
c*p
7 楼
就是实现乘法的竖式实现吧。
把两个操作数按一位、两位、三位或者四位十进制数(取决于int类型的大小)分割,
存储成整弄数组,然后按照做乘法的步骤算一遍。空间复杂度O(m+n),时间复杂度O(mn
),mn为两操作数的长度。【 在 wwwyhx (wwwyhx) 的大作中提到: 】
把两个操作数按一位、两位、三位或者四位十进制数(取决于int类型的大小)分割,
存储成整弄数组,然后按照做乘法的步骤算一遍。空间复杂度O(m+n),时间复杂度O(mn
),mn为两操作数的长度。【 在 wwwyhx (wwwyhx) 的大作中提到: 】
X*U
8 楼
我咋脚的最后一张更出彩啊
埃及法老猫啊
埃及法老猫啊
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再乘啊
string multiply(string num1, string num2) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
vector
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再乘啊
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
: 图片:地点是一个还没有扔掉的旧床垫,自从某日四月发现可以爬上去后就一发不可收
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
: 图片:地点是一个还没有扔掉的旧床垫,自从某日四月发现可以爬上去后就一发不可收
t*7
11 楼
就是数组实现乘法竖式吧... 但是要考虑数组空间的上限越界么?..
N*t
12 楼
这个我也有,不太受欢迎啊
【在 s******n 的大作中提到】
: 绒布条做的cat dancer最好,撕不坏,还能洗,能用很久
: http://www.petco.com/product/5980/Cat-Dancer-Cat-Charmer.aspx?C
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';
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
: 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';
K*t
14 楼
不错~
【在 N******t 的大作中提到】
: 1)小土猫四月的第一个大鸟解体后半个月,第二第三个大鸟陆续光荣牺牲。穷妈我掰
: 指头一算,这可不成,这样下去非让她给玩破产了不可。于是翻箱底找出这个老玩具,
: 其实就是一根铁丝上串了几个小纸筒子,稍稍有点动手能力的同学们应该不难自制。这
: 玩意刚买回来的时候反响一般般,于是压了箱底。现今再拿出来,居然挑逗得猫激愤无
: 比,满屋子追着上蹿下跳,丝毫不输于大鸟。这个玩具的特别之处在于那根铁丝,让小
: 纸筒不可预测的弹来跳去,像只半空中的大飞虫。
: http://www.amazon.com/gp/product/B0006N9I68
: 2)顺便推荐这个塑料弹簧,弹跳力很强,很适合猫在硬地板上玩。
: http://www.amazon.com/gp/product/B000CMKHDG
: 图片:地点是一个还没有扔掉的旧床垫,自从某日四月发现可以爬上去后就一发不可收
【在 N******t 的大作中提到】
: 1)小土猫四月的第一个大鸟解体后半个月,第二第三个大鸟陆续光荣牺牲。穷妈我掰
: 指头一算,这可不成,这样下去非让她给玩破产了不可。于是翻箱底找出这个老玩具,
: 其实就是一根铁丝上串了几个小纸筒子,稍稍有点动手能力的同学们应该不难自制。这
: 玩意刚买回来的时候反响一般般,于是压了箱底。现今再拿出来,居然挑逗得猫激愤无
: 比,满屋子追着上蹿下跳,丝毫不输于大鸟。这个玩具的特别之处在于那根铁丝,让小
: 纸筒不可预测的弹来跳去,像只半空中的大飞虫。
: http://www.amazon.com/gp/product/B0006N9I68
: 2)顺便推荐这个塑料弹簧,弹跳力很强,很适合猫在硬地板上玩。
: http://www.amazon.com/gp/product/B000CMKHDG
: 图片:地点是一个还没有扔掉的旧床垫,自从某日四月发现可以爬上去后就一发不可收
e*l
15 楼
字符数字转换为整数数字,'0'代表0的ascii码
l*e
18 楼
可爱!
n*e
19 楼
signus?
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可以用来学
习。
,返回pointer先malloc/new。还有什么注意事项么。
uva上有一道题要算满足一定条件的加()种数,recursion很快就写出来了,然后就要用
这个arbitrary precision integer arithmetic。写了个char*的结果TLE无数次。最后
有个大牛hint用vector
去年还是前年的google codejam qual有一道题是用这个的,neal_wu的code可以用来学
习。
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
: 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';
m*n
25 楼
呵呵,这个其实比较容易。先写一个字符串相加的方法,
然后用小学学过的办法,一位一位来。。
不过15分钟有点夸张。
然后用小学学过的办法,一位一位来。。
不过15分钟有点夸张。
N*t
26 楼
晕 东有东家语西有西家语,还是只拿了一个包子 =(
a*g
27 楼
这题很难写完一次通过编译
15分钟有点扯。。。
15分钟有点扯。。。
c*p
33 楼
这样空间和时间效率都不好。
考虑到现在int一般是32位(4e9),
每个int元素可以存多位十进制数。
这样的话,单次int乘法的复杂度没有变化,
但是总的乘法次数下降了,使用空间也相应下降了。【 在 zhangchitc (zhangchitc)
的大作中提到: 】
考虑到现在int一般是32位(4e9),
每个int元素可以存多位十进制数。
这样的话,单次int乘法的复杂度没有变化,
但是总的乘法次数下降了,使用空间也相应下降了。【 在 zhangchitc (zhangchitc)
的大作中提到: 】
c*p
43 楼
而且这题基本没有什么tricky的地方吧。。
时间紧的话可以先说你知道有哪些corner case,但是时间比较紧,这里假设两个字符串
符合XX的通用格式。
然后开始照着思路写。。。【 在 wwwyhx (wwwyhx) 的大作中提到: 】
时间紧的话可以先说你知道有哪些corner case,但是时间比较紧,这里假设两个字符串
符合XX的通用格式。
然后开始照着思路写。。。【 在 wwwyhx (wwwyhx) 的大作中提到: 】
N*t
44 楼
钻风是谁。。?
s*u
53 楼
mark
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再乘啊
//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再乘啊
h*e
57 楼
这道题目如果真是FB的高频题,那就硬背一个最简洁的解法吧。
m*8
68 楼
小脚丫好可爱啊。。。。
f*n
70 楼
最后一张的表情很到位
相关阅读
再发10个包子猫妈求助:为什么一向很乖的小猫会忽然在地上bb阿?狗狗老是咬绳子。。。奔Sunday宝宝,祝大家圣诞快乐!胖兔球球七岁生日 50个包子下午带sadie去见了trainer,回来了很難過,多多今天就離開我們了.... (转载)发包子,求祝福外加求答疑Wellness Coupon 5off & 2off麻麻说~~~新时代的英雄狗妈给狗留门,蛇乘虚而入,被毒蛇咬Blue Buffalo Adult Finicky Feast Formula Dry Cat Food急,小猫寄养在朋友家在人家床上尿了~大家觉得我做的对么?(猫狗和谐图3楼)新完成了一幅拼图,来看像不像酱酱下去去抱gsd回来,我不淡定的上着班能bso黏人猫吗?<推荐>既有动物,又有帅哥的电视剧猫猫打喷嚏了