Redian新闻
>
看了那个招聘的帖子,自觉需要把 atoi温习一下。赶紧的
avatar
看了那个招聘的帖子,自觉需要把 atoi温习一下。赶紧的# Programming - 葵花宝典
P*a
1
好好吃。。是我自己种的蒜哦
avatar
S*r
2
三国里说吕布的武力值相当强,单挑刘关张三兄弟都能赢,曾经怀疑过这是不是有点夸
张了,历史上真正的吕布单挑有这么厉害么,先不说张飞和刘备,关羽的武力值可并不
差啊,不过看过一些历史资料后,发现吕布的实力确实不能小看。
翻阅过一些三国正史,里面说吕布的武力值确实强,但是此人属于有勇无谋,并且胸无
大志,就是个及时享乐的类型,每天喜欢沉迷于酒色之中,要不是他喜欢酒色,就不至
于上当被貂蝉这个美女给迷惑杀了董卓了。
吕布这个人的情绪化也很严重,总是反复无常,并且占领了一块地方,就不想去占领更
多的了,也不想称王,就想在自己的这块地方上享受,跟曹操刘备孙权的称帝之野心是
不能相比的,所以吕布最终还是变成了曹操的阶下囚。
本来曹操还看中了吕布的武力值,想要拿来作为自己的下属,可是刘备担心吕布活着会
影响自己的利益,就提醒曹操说,吕布杀了自己两个义父,于是乎吕布被杀。
这样的一个人也是挺悲剧的,空有一身好本领,却是一介莽夫而已,就算真的能单挑干
过刘关张三兄弟,也还是难成大器。
avatar
S*o
3
http://www.qidian.com/BookReader/1880844,31473288.aspx
自寻道,向前找,自有人间道,水和山走了多少数不着
天不老,保我家乡永远的好
看尽尽是青山,青山处处是雨箭风刀
故园路,怎么是走不尽长路
道人道,道神道,自求人间道,妖与魔都说自己好
风疾雷暴,天地鬼哭神号
旧日江山为什么变成了血海滔滔
故园路,怎么是不归路
问人间,到底道在那里找
avatar
t*r
4
int atoi(const char *str) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if (!str){return 0;}
int i=0;
bool pos=true;
int res=0;
while (str[i]==' '){ i++;}
if (str[i]=='+'){ pos=true;i++;}
if (str[i]=='-'){ pos = false;i++;}
if (!isdigit(str[i])){return 0;}
while (isdigit(str[i])){
if (pos && res>INT_MAX/10){return INT_MAX;}
if (pos && res==INT_MAX/10 && int(str[i]-'0')>=7){return INT_MAX;}
if (!pos && -resif (!pos && -res==INT_MIN/10 && int(str[i]-'0')>=8){return INT_
MIN;}
res = res*10 + int(str[i]-'0');
i++;
}

if (pos){return res;}
else{return -res;}

}
会了atoi走遍天下都不怕
avatar
e*e
5
肯定很新鲜很好吃,馋一个。
我这儿都没有看到有蒜苗卖。

【在 P*****a 的大作中提到】
: 好好吃。。是我自己种的蒜哦
avatar
S*i
6
吕布挑不过赵云吧
avatar
f*g
7
faint,就一章刚开始就推啊,这也太粉丝了。
知秋怎么也开始弄仙侠了,这世道。。。

【在 S******o 的大作中提到】
: http://www.qidian.com/BookReader/1880844,31473288.aspx
: 自寻道,向前找,自有人间道,水和山走了多少数不着
: 天不老,保我家乡永远的好
: 看尽尽是青山,青山处处是雨箭风刀
: 故园路,怎么是走不尽长路
: 道人道,道神道,自求人间道,妖与魔都说自己好
: 风疾雷暴,天地鬼哭神号
: 旧日江山为什么变成了血海滔滔
: 故园路,怎么是不归路
: 问人间,到底道在那里找

avatar
L*e
8
有八哥啊。。。

【在 t**r 的大作中提到】
: int atoi(const char *str) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: if (!str){return 0;}
: int i=0;
: bool pos=true;
: int res=0;
: while (str[i]==' '){ i++;}
: if (str[i]=='+'){ pos=true;i++;}
: if (str[i]=='-'){ pos = false;i++;}

avatar
P*a
9
patpat...
中国店没准有?
其实我说的是青蒜苗哈。。

【在 e********e 的大作中提到】
: 肯定很新鲜很好吃,馋一个。
: 我这儿都没有看到有蒜苗卖。

avatar
T*c
10
我靠,知秋怎么也写仙侠啊
纠结,太纠结了,lol
avatar
t*t
11
我上次需要写一段code读一堆大文件, 文件里全是floating point number. 我一开始就
拿标准的strtod/atof写, 发现很慢. 后来到网上搜了一段code 代替strtod, 发现效率
提高400%以上...

【在 t**r 的大作中提到】
: int atoi(const char *str) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: if (!str){return 0;}
: int i=0;
: bool pos=true;
: int res=0;
: while (str[i]==' '){ i++;}
: if (str[i]=='+'){ pos=true;i++;}
: if (str[i]=='-'){ pos = false;i++;}

avatar
wy
12
为啥人家不能写啊。

【在 T***c 的大作中提到】
: 我靠,知秋怎么也写仙侠啊
: 纠结,太纠结了,lol

avatar
a*e
13
这位同学基本功还需要加强啊... 先写个 integer 的 regular expression 来看看,
就知道错在哪里了。

【在 t**r 的大作中提到】
: int atoi(const char *str) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: if (!str){return 0;}
: int i=0;
: bool pos=true;
: int res=0;
: while (str[i]==' '){ i++;}
: if (str[i]=='+'){ pos=true;i++;}
: if (str[i]=='-'){ pos = false;i++;}

avatar
f*g
14
俺估摸着结局和掩男改写仙侠一样,烂尾,灰溜溜下部继续走西幻

【在 wy 的大作中提到】
: 为啥人家不能写啊。
avatar
d*i
15
你这个把很多边角情况考虑了,zlike要的版本可能不需要那么复杂,另外你的code有
错,cast的时候应当是res = res*10 + (int)(str[i]-'0'); 其实也不需要cast,char
自动promote成int.

【在 t**r 的大作中提到】
: int atoi(const char *str) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: if (!str){return 0;}
: int i=0;
: bool pos=true;
: int res=0;
: while (str[i]==' '){ i++;}
: if (str[i]=='+'){ pos=true;i++;}
: if (str[i]=='-'){ pos = false;i++;}

avatar
T*c
16
他能写,只是我不喜欢看修仙的,他要写了,我就要纠结看不看了,lol

【在 wy 的大作中提到】
: 为啥人家不能写啊。
avatar
n*t
17
str[i] 的写法累赘了,直接 *str

【在 t**r 的大作中提到】
: int atoi(const char *str) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: if (!str){return 0;}
: int i=0;
: bool pos=true;
: int res=0;
: while (str[i]==' '){ i++;}
: if (str[i]=='+'){ pos=true;i++;}
: if (str[i]=='-'){ pos = false;i++;}

avatar
o*l
18
养肥了再开始看

【在 S******o 的大作中提到】
: http://www.qidian.com/BookReader/1880844,31473288.aspx
: 自寻道,向前找,自有人间道,水和山走了多少数不着
: 天不老,保我家乡永远的好
: 看尽尽是青山,青山处处是雨箭风刀
: 故园路,怎么是走不尽长路
: 道人道,道神道,自求人间道,妖与魔都说自己好
: 风疾雷暴,天地鬼哭神号
: 旧日江山为什么变成了血海滔滔
: 故园路,怎么是不归路
: 问人间,到底道在那里找

avatar
N*K
19
我基本不用*pointer
*这个看起来就是乘法符号

【在 n*****t 的大作中提到】
: str[i] 的写法累赘了,直接 *str
avatar
l*d
20
张学友的歌词啊。
avatar
b*s
21
我觉得你放弃c++改java是正确的

【在 t**r 的大作中提到】
: int atoi(const char *str) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: if (!str){return 0;}
: int i=0;
: bool pos=true;
: int res=0;
: while (str[i]==' '){ i++;}
: if (str[i]=='+'){ pos=true;i++;}
: if (str[i]=='-'){ pos = false;i++;}

avatar
n*m
22
我看狩魔大概和尘缘跟亵渎差不多,最后到要灰溜溜
所以烟男的和题材末关系

【在 f****g 的大作中提到】
: 俺估摸着结局和掩男改写仙侠一样,烂尾,灰溜溜下部继续走西幻
avatar
d*i
23
以前一些老的C compiler,用指针access element确实比用index快,所以经常有*p++
= *q--这样的convention,后来的编译器把a[i]优化得和*(a+i)生成的机器码完全一摸
一样了。

【在 n*****t 的大作中提到】
: str[i] 的写法累赘了,直接 *str
avatar
g*g
24
不知道是不是想写 月落那样游历西方的。
avatar
t*t
25
a[i]从最开始就是完全等同于*(a+i)的, 你这说的完全不靠谱.

+

【在 d****i 的大作中提到】
: 以前一些老的C compiler,用指针access element确实比用index快,所以经常有*p++
: = *q--这样的convention,后来的编译器把a[i]优化得和*(a+i)生成的机器码完全一摸
: 一样了。

avatar
r*t
26
凡人就是当代的大法师
avatar
x*u
27
STL iterator的i++和++i完全等价,也有很多人不知道。

【在 t****t 的大作中提到】
: a[i]从最开始就是完全等同于*(a+i)的, 你这说的完全不靠谱.
:
: +

avatar
t*n
28
差很远罢
大法师可是开创了地瓜流的

凡人就是当代的大法师

【在 r******t 的大作中提到】
: 凡人就是当代的大法师
avatar
N*K
29
这种
for(int* p=&str[0]; p<=&str[Max]; ++p)
{
p[0]=1;
}
是不是比
for(int i=0; i<=Max; ++i)
{
str[i]=1;
}
快?

【在 t****t 的大作中提到】
: a[i]从最开始就是完全等同于*(a+i)的, 你这说的完全不靠谱.
:
: +

avatar
d*d
30
秋姐。。。
avatar
t*t
31
我说的是语法层面, 你说的是优化层面. 这两不是一回事.

【在 x****u 的大作中提到】
: STL iterator的i++和++i完全等价,也有很多人不知道。
avatar
p*t
32
掌心雷 vs Thunderbolt,力劈华山 vs 地裂斩……仙侠和奇幻除了形式上的背景
差异,有啥本质区别?
所以把握不了自己的故事结果要烂尾的无论写什么都会烂尾

【在 n*****m 的大作中提到】
: 我看狩魔大概和尘缘跟亵渎差不多,最后到要灰溜溜
: 所以烟男的和题材末关系

avatar
t*t
33
p<=p=&str[Max]
这个能编译?

【在 N******K 的大作中提到】
: 这种
: for(int* p=&str[0]; p<=&str[Max]; ++p)
: {
: p[0]=1;
: }
: 是不是比
: for(int i=0; i<=Max; ++i)
: {
: str[i]=1;
: }

avatar
N*K
34
手误

【在 t****t 的大作中提到】
: p<=p=&str[Max]
: 这个能编译?

avatar
t*t
35
这个基本上不行. 代码写得太怪异编译器不会优化反而更慢.

【在 N******K 的大作中提到】
: 这种
: for(int* p=&str[0]; p<=&str[Max]; ++p)
: {
: p[0]=1;
: }
: 是不是比
: for(int i=0; i<=Max; ++i)
: {
: str[i]=1;
: }

avatar
N*K
36
我最近发现 写矩阵运算 那么写会快很多 vs2013

【在 t****t 的大作中提到】
: 这个基本上不行. 代码写得太怪异编译器不会优化反而更慢.
avatar
T*i
37
我基本不相信编译器的优化。尤其是有template参与的情况。
如果没有loop优化,当然*p++快很多。p[i]这种寻址要多两条指令。

【在 N******K 的大作中提到】
: 我最近发现 写矩阵运算 那么写会快很多 vs2013
avatar
d*i
38
我搞错了这两个是等价的。但是用指针的方式access array比用array的方式快这在以
前的编译器确实是这样的。
http://stackoverflow.com/questions/2305770/efficiency-arrays-vs

【在 t****t 的大作中提到】
: a[i]从最开始就是完全等同于*(a+i)的, 你这说的完全不靠谱.
:
: +

avatar
x*u
39
现在主流意见是不要玩这种花样。

【在 N******K 的大作中提到】
: 这种
: for(int* p=&str[0]; p<=&str[Max]; ++p)
: {
: p[0]=1;
: }
: 是不是比
: for(int i=0; i<=Max; ++i)
: {
: str[i]=1;
: }

avatar
x*u
40
这个就是语法层面的,和优化没有关系。

【在 t****t 的大作中提到】
: 我说的是语法层面, 你说的是优化层面. 这两不是一回事.
avatar
x*u
41
老问题了,矩阵为什么不用库,为什么不用GPU?

【在 N******K 的大作中提到】
: 我最近发现 写矩阵运算 那么写会快很多 vs2013
avatar
T*i
42
Thrust,
能不能share一下你在网上搜到的code? 我看看是不是比我现在用的快?

始就

【在 t****t 的大作中提到】
: 我上次需要写一段code读一堆大文件, 文件里全是floating point number. 我一开始就
: 拿标准的strtod/atof写, 发现很慢. 后来到网上搜了一段code 代替strtod, 发现效率
: 提高400%以上...

avatar
x*u
43
细谈为什么i++和++i等价,可以作为一道面试题了。大部分看了入门C++书的人都会告
诉你要用后者。

【在 x****u 的大作中提到】
: 这个就是语法层面的,和优化没有关系。
avatar
N*K
44
主流算个球

【在 x****u 的大作中提到】
: 现在主流意见是不要玩这种花样。
avatar
d*i
45
我的记忆中好像当i是iterator的时候,i++要多加一次调用++i,所以后者稍微更
efficient一点,不是到是不是这样,现在的C++编译器应该优化过了没区别了。

【在 x****u 的大作中提到】
: 细谈为什么i++和++i等价,可以作为一道面试题了。大部分看了入门C++书的人都会告
: 诉你要用后者。

avatar
x*u
46
你自己折腾指针,人家上了GPGPU,谁合算。

【在 N******K 的大作中提到】
: 主流算个球
avatar
T*i
47
我现在最爱用C macro。简直是神器。
我曾经有上千行代码用macro取代template以后,速度快了2倍。

【在 N******K 的大作中提到】
: 主流算个球
avatar
N*K
48
设计新算法 哪里找库?
我说的矩阵运算可不是矩阵之间的+-*/
你们这些全堆程序猿 是不能理解的
不是所有计算都适合GPU

【在 x****u 的大作中提到】
: 老问题了,矩阵为什么不用库,为什么不用GPU?
avatar
d*i
49
haha, using a lot of C macro is considered to be bad practice in C++

【在 T********i 的大作中提到】
: 我现在最爱用C macro。简直是神器。
: 我曾经有上千行代码用macro取代template以后,速度快了2倍。

avatar
x*u
50
Iterator是有意设定成完全等价于简单类型的,所以临时变量从一开始就不会有。

【在 d****i 的大作中提到】
: 我的记忆中好像当i是iterator的时候,i++要多加一次调用++i,所以后者稍微更
: efficient一点,不是到是不是这样,现在的C++编译器应该优化过了没区别了。

avatar
T*i
51
说那话的都是无知的表现。你千万不要相信那些砖家。

【在 d****i 的大作中提到】
: haha, using a lot of C macro is considered to be bad practice in C++
avatar
x*u
52
不管是什么运算GPU或者DSP都更有效率,原因在基础课里面讲了。
如果你是试验性质的,也犯不着优化这点东西。

【在 N******K 的大作中提到】
: 设计新算法 哪里找库?
: 我说的矩阵运算可不是矩阵之间的+-*/
: 你们这些全堆程序猿 是不能理解的
: 不是所有计算都适合GPU

avatar
x*u
53
用宏唯一能提高的就是编译速度。

【在 T********i 的大作中提到】
: 说那话的都是无知的表现。你千万不要相信那些砖家。
avatar
L*e
54
如果说不是随着要处理的文件size的增加,效率比越来越大的话,那么两个code在算法
上应该没有根本区别。通配的function比较慢通常是因为要handle的case比较多,可能
会做一些额外的处理。而你搜来的code只需要能handle你需要handle的case就可以了。
。。
如果真的是算法上的提高,可以去要求update标准的function。。。

始就
★ 发自iPhone App: ChineseWeb 8.2.2

【在 t****t 的大作中提到】
: 我上次需要写一段code读一堆大文件, 文件里全是floating point number. 我一开始就
: 拿标准的strtod/atof写, 发现很慢. 后来到网上搜了一段code 代替strtod, 发现效率
: 提高400%以上...

avatar
T*i
55
这个蛋扯的。难道算1+1也更有效率?你知不知道数据传输到gpu memory的latency多大?

【在 x****u 的大作中提到】
: 不管是什么运算GPU或者DSP都更有效率,原因在基础课里面讲了。
: 如果你是试验性质的,也犯不着优化这点东西。

avatar
N*K
56
你知道GPU多少内存么?
GPU提速也就5-10倍
DSP你就更是扯jb蛋了 德州仪器的DSP能提供多少内存?
3D图像 一幅图就上G 不是opencv那种2D图

【在 x****u 的大作中提到】
: 不管是什么运算GPU或者DSP都更有效率,原因在基础课里面讲了。
: 如果你是试验性质的,也犯不着优化这点东西。

avatar
d*i
57
这个也算是一种cultural difference吧,hardcore C programmers love C macro
very much even though they are very error-prone if not used properly.

【在 T********i 的大作中提到】
: 说那话的都是无知的表现。你千万不要相信那些砖家。
avatar
T*i
58
这个蛋扯的。
在保证代码执行效率最高的情况下,还能节约数倍的代码行,同时提高程序的可读性。
5000行能变1000多行。

【在 x****u 的大作中提到】
: 用宏唯一能提高的就是编译速度。
avatar
s*y
59
^_^

【在 x****u 的大作中提到】
: 用宏唯一能提高的就是编译速度。
avatar
T*i
60
别说宏到底是能提高编译速度还是降低,我真不知道。

【在 s******y 的大作中提到】
: ^_^
avatar
t*t
61
你不开优化, 这两个就是不等价的. 当然和优化有关系.

【在 x****u 的大作中提到】
: 这个就是语法层面的,和优化没有关系。
avatar
N*K
62
另外 设计新算法 要不断更新 代码可读性 代码之前的连贯性 要保证
GPU这个东西只有一个trust c++库 里面的东西不全 还得用特定编译器 和别的算法接
口 就非常繁琐
设计新东西 和 全堆程序猿用轮子堆东西 是完全不同的编程思路

【在 x****u 的大作中提到】
: 不管是什么运算GPU或者DSP都更有效率,原因在基础课里面讲了。
: 如果你是试验性质的,也犯不着优化这点东西。

avatar
t*t
63
要是你说的iterator只是vector的, 那当我没说. 比如说deque的iterator显然不是简单
类型.

【在 x****u 的大作中提到】
: Iterator是有意设定成完全等价于简单类型的,所以临时变量从一开始就不会有。
avatar
L*e
64
靠!一道atoi的题你们就能扯到i++ ++i,再扯倒矩阵运算,再扯到GPU,再扯到宏和编
译优化,楼主的code里的八哥都是小节问题了。。。难怪那么多人觉得面试问atoi太难
了,十年java经验也得挂。。。

★ 发自iPhone App: ChineseWeb 8.2.2
★ 发自iPhone App: ChineseWeb 8.2.2

【在 s******y 的大作中提到】
: ^_^
avatar
c*e
65
en,我们这都说代码别写得有小聪明,要让同事能读懂。喜欢写怪异代码的,在我们这
被当作trouble maker.

【在 t****t 的大作中提到】
: 这个基本上不行. 代码写得太怪异编译器不会优化反而更慢.
avatar
x*u
66
比你把数据敲进电脑内存快多了。

大?

【在 T********i 的大作中提到】
: 这个蛋扯的。难道算1+1也更有效率?你知不知道数据传输到gpu memory的latency多大?
avatar
x*u
67
现在挖矿都用专用芯片了,你用CPU也就和python写12306一样。

【在 N******K 的大作中提到】
: 你知道GPU多少内存么?
: GPU提速也就5-10倍
: DSP你就更是扯jb蛋了 德州仪器的DSP能提供多少内存?
: 3D图像 一幅图就上G 不是opencv那种2D图

avatar
x*u
68
你template用的不好。写的好的几行template编译器展开后就自爆了。

【在 T********i 的大作中提到】
: 这个蛋扯的。
: 在保证代码执行效率最高的情况下,还能节约数倍的代码行,同时提高程序的可读性。
: 5000行能变1000多行。

avatar
N*K
69
设计新东西 和轮子堆东西 能一样么?
挖矿就是现成算法 fpga实现而已

【在 x****u 的大作中提到】
: 现在挖矿都用专用芯片了,你用CPU也就和python写12306一样。
avatar
T*i
70
下面是你帖子原文。不知道你的基础课老师是谁。
不管是什么运算GPU或者DSP都更有效率,原因在基础课里面讲了。
如果你是试验性质的,也犯不着优化这点东西。......

【在 x****u 的大作中提到】
: 比你把数据敲进电脑内存快多了。
:
: 大?

avatar
x*u
71
等价不等价取决于DEBUG附加代码,和优化没关系。简单对象退化成简单变量是语法规
定的。

【在 t****t 的大作中提到】
: 你不开优化, 这两个就是不等价的. 当然和优化有关系.
avatar
x*u
72
你大量用遗产代码考虑过速度么?

【在 N******K 的大作中提到】
: 另外 设计新算法 要不断更新 代码可读性 代码之前的连贯性 要保证
: GPU这个东西只有一个trust c++库 里面的东西不全 还得用特定编译器 和别的算法接
: 口 就非常繁琐
: 设计新东西 和 全堆程序猿用轮子堆东西 是完全不同的编程思路

avatar
x*u
73
你误解简单类型这个词义了

简单

【在 t****t 的大作中提到】
: 要是你说的iterator只是vector的, 那当我没说. 比如说deque的iterator显然不是简单
: 类型.

avatar
x*u
74
对于新东西,理论速度才是重要的,你扣指针没用啊

【在 N******K 的大作中提到】
: 设计新东西 和轮子堆东西 能一样么?
: 挖矿就是现成算法 fpga实现而已

avatar
x*u
75
魏老师你自学的时候肯定不看自己不想看的书吧。

【在 T********i 的大作中提到】
: 下面是你帖子原文。不知道你的基础课老师是谁。
: 不管是什么运算GPU或者DSP都更有效率,原因在基础课里面讲了。
: 如果你是试验性质的,也犯不着优化这点东西。......

avatar
N*K
76
wk 简直是给农民讲相对论

【在 x****u 的大作中提到】
: 对于新东西,理论速度才是重要的,你扣指针没用啊
avatar
x*u
77
农民总觉得自己发现了相对论里面一个标点错误,就推翻相对论了。

【在 N******K 的大作中提到】
: wk 简直是给农民讲相对论
avatar
N*K
78
服了你们全堆程序猿了

【在 x****u 的大作中提到】
: 农民总觉得自己发现了相对论里面一个标点错误,就推翻相对论了。
avatar
c*e
79
相对论全是数学推导的,没有逻辑性在里面,结果出了很多谬论,最著名的就是孙子跑
到过去把老爷子杀了会发生什么事情。看看,一个理论,竟然没有把因果逻辑包括进去
,结果出来些怪论。

【在 x****u 的大作中提到】
: 农民总觉得自己发现了相对论里面一个标点错误,就推翻相对论了。
avatar
x*u
80
我还知道两位数加减法,你封我个全堆数学家吧。

【在 N******K 的大作中提到】
: 服了你们全堆程序猿了
avatar
N*K
81
还是超级赛亚人符合

【在 x****u 的大作中提到】
: 我还知道两位数加减法,你封我个全堆数学家吧。
avatar
T*i
82
别说,这个gpu, SSE,AVX之类的,我还真玩过。
而且手工写的code每天都在跑。
在你身上浪费时间真不值。

【在 x****u 的大作中提到】
: 魏老师你自学的时候肯定不看自己不想看的书吧。
avatar
c*e
83
咋玩过,详细说说。人类真的上过月球。

【在 T********i 的大作中提到】
: 别说,这个gpu, SSE,AVX之类的,我还真玩过。
: 而且手工写的code每天都在跑。
: 在你身上浪费时间真不值。

avatar
x*u
84
所以说上过小学常识课的都是全堆赛亚人

【在 N******K 的大作中提到】
: 还是超级赛亚人符合
avatar
x*u
85
您老就是玩多了才总是想多。

【在 T********i 的大作中提到】
: 别说,这个gpu, SSE,AVX之类的,我还真玩过。
: 而且手工写的code每天都在跑。
: 在你身上浪费时间真不值。

avatar
N*K
86
核辐射后产生超级赛亚人

【在 x****u 的大作中提到】
: 所以说上过小学常识课的都是全堆赛亚人
avatar
x*u
87
扯淡是正道/

【在 N******K 的大作中提到】
: 核辐射后产生超级赛亚人
avatar
T*i
88
有啥好说的呢?不都是常识么?

【在 c*********e 的大作中提到】
: 咋玩过,详细说说。人类真的上过月球。
avatar
D*r
90
我也来抄写一遍:(擦,写了半个小时放弃了,又要判断是不是负数,又要判断上下界
,记不住interger的上下界macro,超出上下界还得返回errno,需要exit么?。面试挂
了。)
int atoi(const char *str) {
int i, result, t;
char* p;
if (!str) return 0;
i = 0;
result = 0;
t = 0;
p = str;
while (*p) {
t = (int)(p[i]-'0');
if (!isdigit(t)) return -1;
result = result * 10 + t;
}
}

【在 t**r 的大作中提到】
: int atoi(const char *str) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: if (!str){return 0;}
: int i=0;
: bool pos=true;
: int res=0;
: while (str[i]==' '){ i++;}
: if (str[i]=='+'){ pos=true;i++;}
: if (str[i]=='-'){ pos = false;i++;}

avatar
a*l
91
1)太小看编译器的优化能力呢.
2)太高看编译器理解人类思维的能力了.
这就好比和电脑下围棋,你和电脑直接来刺刀见红的对杀基本会死的很惨,但是如果和电
脑来闪展腾挪指东击西地折腾,即使是很菜的菜鸟也能很容易把电脑搞晕.

【在 N******K 的大作中提到】
: 这种
: for(int* p=&str[0]; p<=&str[Max]; ++p)
: {
: p[0]=1;
: }
: 是不是比
: for(int i=0; i<=Max; ++i)
: {
: str[i]=1;
: }

avatar
g*i
92
哈哈,好久不做了,再来重新找找感觉
avatar
T*i
93
多谢thrust。我曾经自己做了个类似的。
我还做了个encoding的。
size_t Convert::encodeFloatValue(double value, char *buffer) {
char floatBuffer[FLOAT_BUFFER_LEN];
int dec, sign;
int result;
#if defined(_MSC_VER)
result = _ecvt_s(floatBuffer, FLOAT_BUFFER_LEN, value, 15, &dec, &
sign);
return ecvtBuffer2String(floatBuffer, buffer, dec, sign);
#else
char *ret = ecvt(value, 15, &dec, &sign);
return ecvtBuffer2String(ret, buffer, dec, sign);
#endif
}
ecvtBuffer2String的原理和这个decoder类似。

【在 t****t 的大作中提到】
: http://code.google.com/p/retrobsd/source/browse/trunk/src/libc/
: .c?spec=svn509&r=509

avatar
N*K
94
我是实践得出的经验 你jjww啥

【在 a****l 的大作中提到】
: 1)太小看编译器的优化能力呢.
: 2)太高看编译器理解人类思维的能力了.
: 这就好比和电脑下围棋,你和电脑直接来刺刀见红的对杀基本会死的很惨,但是如果和电
: 脑来闪展腾挪指东击西地折腾,即使是很菜的菜鸟也能很容易把电脑搞晕.

avatar
g*g
95
我来贴标准答案了。把radix hardcode成10就行。
public static int More ...parseInt(String s, int radix)
440 throws NumberFormatException
441 {
442 if (s == null) {
443 throw new NumberFormatException("null");
444 }
445
446 if (radix < Character.MIN_RADIX) {
447 throw new NumberFormatException("radix " + radix +
448 " less than Character.MIN_
RADIX");
449 }
450
451 if (radix > Character.MAX_RADIX) {
452 throw new NumberFormatException("radix " + radix +
453 " greater than Character.MAX
_RADIX");
454 }
455
456 int result = 0;
457 boolean negative = false;
458 int i = 0, len = s.length();
459 int limit = -Integer.MAX_VALUE;
460 int multmin;
461 int digit;
462
463 if (len > 0) {
464 char firstChar = s.charAt(0);
465 if (firstChar < '0') { // Possible leading "-"
466 if (firstChar == '-') {
467 negative = true;
468 limit = Integer.MIN_VALUE;
469 } else
470 throw NumberFormatException.forInputString(s);
471
472 if (len == 1) // Cannot have lone "-"
473 throw NumberFormatException.forInputString(s);
474 i++;
475 }
476 multmin = limit / radix;
477 while (i < len) {
478 // Accumulating negatively avoids surprises near MAX_
VALUE
479 digit = Character.digit(s.charAt(i++),radix);
480 if (digit < 0) {
481 throw NumberFormatException.forInputString(s);
482 }
483 if (result < multmin) {
484 throw NumberFormatException.forInputString(s);
485 }
486 result *= radix;
487 if (result < limit + digit) {
488 throw NumberFormatException.forInputString(s);
489 }
490 result -= digit;
491 }
492 } else {
493 throw NumberFormatException.forInputString(s);
494 }
495 return negative ? result : -result;
496 }
avatar
c*3
96
要考虑到这么多cases,只好挂了。

【在 g*****g 的大作中提到】
: 我来贴标准答案了。把radix hardcode成10就行。
: public static int More ...parseInt(String s, int radix)
: 440 throws NumberFormatException
: 441 {
: 442 if (s == null) {
: 443 throw new NumberFormatException("null");
: 444 }
: 445
: 446 if (radix < Character.MIN_RADIX) {
: 447 throw new NumberFormatException("radix " + radix +

avatar
S*A
97
如果有速度区别那个是很弱的编译器了。
在 LLVM 里面指针和数组的内部表示是一样的。
你做这样的编译测试还要加上 -O2 之类的。

【在 d****i 的大作中提到】
: 我搞错了这两个是等价的。但是用指针的方式access array比用array的方式快这在以
: 前的编译器确实是这样的。
: http://stackoverflow.com/questions/2305770/efficiency-arrays-vs

avatar
S*A
98
你其实不应该用 isdigit()。
isdigit() 和当前的 local 有关系。
完全有可能在个奇葩的 local 里面把类似 “一二”
这样的本土语言数字返回真,你的程序就彻底歇菜了。

【在 t**r 的大作中提到】
: int atoi(const char *str) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: if (!str){return 0;}
: int i=0;
: bool pos=true;
: int res=0;
: while (str[i]==' '){ i++;}
: if (str[i]=='+'){ pos=true;i++;}
: if (str[i]=='-'){ pos = false;i++;}

avatar
n*t
99
能识别负一千零七十三也不容易啊

【在 S*A 的大作中提到】
: 你其实不应该用 isdigit()。
: isdigit() 和当前的 local 有关系。
: 完全有可能在个奇葩的 local 里面把类似 “一二”
: 这样的本土语言数字返回真,你的程序就彻底歇菜了。

avatar
S*A
100
问题是这个程序识别不了阿。
后面和 ‘0’ 减法其他本土语言就肯定结果乱了。

【在 n*****t 的大作中提到】
: 能识别负一千零七十三也不容易啊
avatar
n*t
101
新面试题:regexp replace 中文数字

【在 S*A 的大作中提到】
: 问题是这个程序识别不了阿。
: 后面和 ‘0’ 减法其他本土语言就肯定结果乱了。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。