a***e 发帖数: 413 | 1 最近做leetcode,有的题花很长时间能写出来,但长得很。不知道怎么才能写得简洁一
些,特别是在面试那种时间有限的情况下。多谢大牛分享经验!
比如那道strstr()
char *strStr(char *haystack, char *needle) {
if (haystack==NULL || needle==NULL) return NULL;
char *needleHead = needle;
char *hsHead = haystack;
int hl=0, nl=0;
while(*haystack!=' | l****1 发帖数: 33 | 2 写得很长,可能方法有问题。
面试在有限的时间不可能写出很长的代码。 | e********3 发帖数: 18578 | 3 几个基本原则,indentation和curly braces是很重要的,还有就是变量和方法命名要
合理,让人一目了然,好的变量和函数方法名比comment强100倍。还有就是简洁不要牺
牲可达性,比如这么一段简单的代码,
char *strStr(char *haystack, char *needle) {
if (haystack==NULL || needle==NULL) {
return NULL;
}
char *needleHead = needle;
char *hsHead = haystack;
int hl=0, nl=0;
while(*haystack!='
我不知道这里hl, nl什么意思,如果改写成一个更加明确的变量名,这样感觉就好看一
些了,其实写代码跟写文章一样,虽然你要追求美丽的用词和简洁的文风,但是什么都
有个度,太抠语言的一些quirk了最后写出来的就是生涩难懂。
写简洁漂亮的代码最好的办法就是多看看牛人是怎么写的,和写作一样,熟读唐诗三百
首,不会作诗也会吟。还有一点就是要千锤百炼,反复斟酌,没有什么好的代码和文章
是一遍就能写出来的,所以Scrum里面code review是很重要的,对于整个团队的代码
consistency都是有很大帮助的。
【在 a***e 的大作中提到】 : 最近做leetcode,有的题花很长时间能写出来,但长得很。不知道怎么才能写得简洁一 : 些,特别是在面试那种时间有限的情况下。多谢大牛分享经验! : 比如那道strstr() : char *strStr(char *haystack, char *needle) { : if (haystack==NULL || needle==NULL) return NULL; : char *needleHead = needle; : char *hsHead = haystack; : int hl=0, nl=0; : while(*haystack!='
|
|