我要编程
来源:互联网 发布:8月份上海房产成交数据 编辑:程序博客网 时间:2024/05/01 00:42
河畔水人很多,牛人也不少,但这不是我泡汤的理由,主要还是自己真心太水了。3个题摆在我面前,不要说两个钟头coding三个,就是只把第二个拿来我c,两个钟头也未必能办妥,所以。。。哈哈,华为GG,这一次你刷掉我,是对的,但我决定:努力不给你第二次刷我的机会,哟。
刚刚不是说到第二题嘛,虽然说出来有点更加衬托我的暴弱,但我还是说吧,立刻开始。
例如:单词本中的单词集为"chengdu chongqing huanghe changjiang",我输入"ch",则应输出"chengdu chongqing changjiang"......
函数原型:
void auto_complete(char *dict,char *input,char output[])
函数定义:
/************************************************************
* Name: auto_complete
* Copyright: @ee
* Author: 辰采星
* Date: 2012-04-25
* Description: 为了卖关子,就不了,并且cut掉注释哦
*************************************************************/
void auto_complete(char *dict,char *input,char output[]) { if(NULL == dict || NULL == input || NULL == output) { printf("Invalid arguments!\n"); getchar(); exit(1); } char *p = output; int k = 0; int j = 0; int i = 0; while(*(dict + i) != '\0') { while(' ' == *(dict + i)) ++i; while(*(input + j) != '\0' && *(dict + i) != '\0') { if(*(dict + i) == *(input + j)) { ++i; ++j; } else break; } if('\0' == *(input + j) && (0 == (i - j) || ' ' == *(dict + i - j - 1))) { for(k = i - j;*(dict + k) != ' ';++p,++k) *p = *(dict + k); *(p++) = ' '; j = 0; } else { j = 0; } ++i; } *p = '\0'; }
coding & testing后感:
修正思路的错误就花了哥哥几百滴汗水啊!然后仍然百调不得其解,今天走在去食堂的途中,才有一道灵光打在我的脑袋上,妈呀,是不是。。。?回宿舍一改。。。最后知道真相的我眼泪掉下来。。。尼玛,果然是你啊——'\0',冷落了你这么久,太对不住了,请原谅我吧,看在我也受了时间之罚的情分上。
当然,这个函数依赖于C风格的字符串,这是不妥之一。应该还有之二、之三。。。等等吧,等我线下寻找。
2. 《编程之美》上有这么一道小题,给定一个主串s1,拿一个模式串s2来,看s2能否在s1中通过循环移位来找到匹配的字串,能则返回true,否则返回false。
例如:s1 = "AABECD",s2 = "CDAA",应该返回true;而如果s2 = "BED",则要返回false了。
函数原型:
_Bool rot_match(char *dict,char *input)
函数定义:
/*******************************************************************
* Name: RotateMatch
* Copyright: @ee
* Author: 辰采星
* Date: 2012-04-23
* Description: 也cut掉注释哦,我再想想我的逻辑对了没有呢
********************************************************************/
_Bool rot_match(char *dict,char *input) { int len_in = strlen(input); int len_dict = strlen(dict); int len_tmp = 2 * len_dict; int i = 0; int j = 0; while(i < len_tmp) { if(*(dict + i % len_dict) == *(input + j)) { ++i; ++j; } else ++i; } if(len_in == j) return true; else return false; }
字符串真是不容易操控啊!
******************************************************************************************************
Review @ 2012-04-27 :
auto_complete()函数作了多余的比较,因为是单词左端匹配查询得嘛,比如,一旦首字母失配,就应该直接比较下一个单词,而不是上述代码里所做的:继续比较,之后再来判断有木有失配。当然,我觉得这个字典结构本身不完美,要是组织成指针数组,就漂亮点了。
Review @ 2012-04-30 :
C99之前的C标准没有布尔类型。
******************************************************************************************************
- 我要编程
- 我要学好编程
- 我要编程
- 我编程,我快乐
- No MFC 编程02 - 我要独一无二 !
- 自制编程题目-我要吃饭!
- 我为什么要写编程教程?
- 我要开始学编程了!
- 我喜欢,我编程;我编程,我快乐!
- 《我编程我快乐》读后感
- 《我编程,我快乐》 摘抄
- 我编程,我快乐--节选
- 《我编程我快乐》读书笔记
- 读《我编程,我快乐》
- 我的编程历程
- 编程,我的梦
- 编程和我
- 我的编程感悟
- 算法导论学习笔记(13)——二项堆
- 利用OpenCV设定不规则ROI区域
- AndroidNote012.Android访问webservice.客户端登录注册
- JDBC数据处理步骤
- stallman 征婚
- 我要编程
- Property-Driven和Model-Driven
- android相关网址
- (转)获得Python脚本所在目录
- Active控件调试
- ora-01033:oracle initialization or shutdown in progress 解决方法
- 一些ASCLL码
- (精)河南省第三届acm(AMAZING AUCTION)
- 数据库索引分析及其优化