首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
2005年11月金山笔试题。编码完成下面的处理函数。函数将字符串中的字符’*’移到串的前部分,前面的非’*’字符后移,但不能改变非’*’字符的先后顺序,函数返回串中字符’*’的数量。如原始串为:ab**cd**e*12,处理后为*****abcde12,函
2005年11月金山笔试题。编码完成下面的处理函数。函数将字符串中的字符’*’移到串的前部分,前面的非’*’字符后移,但不能改变非’*’字符的先后顺序,函数返回串中字符’*’的数量。如原始串为:ab**cd**e*12,处理后为*****abcde12,函
admin
2019-03-29
89
问题
2005年11月金山笔试题。编码完成下面的处理函数。函数将字符串中的字符’*’移到串的前部分,前面的非’*’字符后移,但不能改变非’*’字符的先后顺序,函数返回串中字符’*’的数量。如原始串为:ab**cd**e*12,处理后为*****abcde12,函数并返回值为5。(要求使用尽量少的时间和辅助空间)
选项
答案
int change(char *str) /* 这个算法并不高效,从后向前搜索效率要高些 */ { int count = 0; /* 记录串中字符’*’的个数 */ for(int i=0, j=0; str[i]; i++) /* 重串首开始遍历 */ { if(str[i]==’*’){ /* 遇到字符’*’ */ for(j=i-1; str[j]!=’*’&&j>=0; j--) /* 采用类似插入排序的思想,将*前面 */ str[j+1]=str[j]; /* 的非*字符逐个后移,直到遇到*字符 */ str[j+1] = ’*’; count++; } } return count; } int main(int argc, char* argv[]) { char str[] = "ab**cd**e*12"; printf("str1=%s\n", str); printf("str2=%s, count=%d", str, change(str)); return getchar(); } // 终于得到一个比较高效的算法,一个网友提供,应该和金山面试官的想法一致。算法如下: int change(char *str) { int i,j=strlen(str)-1; for(i=j; j>=0; j--) { if(str[i]!=’*’){ i--; }else if(str[j]!=’*’){ str[i] = str[j]; str[j] = ’*’; i--; } } return i+1; }
解析
转载请注明原文地址:https://kaotiyun.com/show/cxmZ777K
0
程序员面试
相关试题推荐
Asthelatestcropofstudentspentheirundergraduateapplicationformandweighuptheiroptions,itmaybeworthconsidering
输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1,-2,3,10,-4,7,2,-5,和最大的子数组为3,10,
C#中Property与Attribute的区别,他们各有什么用处,这种机制的好处在哪里?
在金山毒霸2008中,手动查杀“移动存储设备”中的病毒木马。
Excel2000中,列标()A.可以用各种符号表示B.用数字表示C.用字母表示D.可以用中文文字表示
如果要将页面上的某个图形设计成页面下载后显示在页面上,当鼠标放在它的上面时,该图形变为另一图形,那么可以通过______方法来设置。A.使用时间线B.“RolloverImage”命令C.将图形插入到表格中D.使用层与行为
若程序内已定义了一个结构型数据:TYPERECORDCHARACTER(len=30)::name,addressINTEGER::Phone_numberENDTYPERECORD则以下类型为RECORD的数组说明语句中正确的是__
在使用SELECT-SQL语句进行查询操作时,可以进行集合的并运算,即将多个基本的SELECT-SQL语句运行结果进行合并。这时,需要使用关键词(或称为运算符)________将多个基本的SELECT-SQL语句进行组合。
在Excel2003中,按住鼠标左键直接拖动填充柄在相邻的多个单元格中填充数据序列,以下具有自动加1可能的是()。
阅读以下关于税务管理系统方面的叙述,回答问题1和问题2。近年来,我国电子税务工作取得了长足进步,特别是2000年,税务管理信息化工作在国务院领导的直接关心和国家税务总局党组的具体指挥下,以五省四市“金税工程”的顺利开通、平稳运行为标志,取得了突破性
随机试题
只有存在心理障碍或心理问题的学生才需要心理健康教育。()
描述群体的不同类型及群体发展的五个阶段。
阅读下面这首诗,写一篇不少于200字的赏析文字:除夜作高适旅馆寒灯独不眠,客心何事转凄然?故乡今夜思千里,霜鬓明朝又一年。
男,28岁,阵发性心慌3年,每次心慌突然发生,持续半小时至3小时不等:本次发作时心律齐,200次/分,按摩颈动脉窦心律能突然减慢至正常;心电图示心率200次/分,节律规则,QRS波形态正常,P波不明显。该患者首先应该考虑的疾病诊断是
30岁,经产妇,停经7个月左右时感到腹部过度增大,下肢水肿,走路气短,来院第1次产前检查发现为双胎妊娠,对该孕妇进行了一系列孕产期的指导,以下哪项措施不正确
某混凝土衬砌有压隧洞中心线高程65.0m,地下水位78.2m,外水压力折减系数取0.45,则作用于衬砌上的外水压力强度标准值为()kN/m2。
信息沟通最常见的方式有()
下列文稿中具有正式公文效用的是()。
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数最低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。注意:部分源程序在文件PROG1.C文
现在,我们做个练习,请大家用黑板上的这几个词语写一段话,最少100字,下课前给我,听明白了吗?说话人最可能是做什么的?
最新回复
(
0
)