首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
2005年11月金山笔试题。编码完成下面的处理函数。函数将字符串中的字符’*’移到串的前部分,前面的非’*’字符后移,但不能改变非’*’字符的先后顺序,函数返回串中字符’*’的数量。如原始串为:ab**cd**e*12,处理后为*****abcde12,函
2005年11月金山笔试题。编码完成下面的处理函数。函数将字符串中的字符’*’移到串的前部分,前面的非’*’字符后移,但不能改变非’*’字符的先后顺序,函数返回串中字符’*’的数量。如原始串为:ab**cd**e*12,处理后为*****abcde12,函
admin
2019-03-29
122
问题
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
程序员面试
相关试题推荐
TheUnitedStatesInterstateHighwaySystemisaninfrastructurefeatofunprecedentedproportions.Notonlydoesitjoinallfi
Publicationbiasinacademicjournalsisnothingnew.Afindingofnocorrelationbetweensportingeventsandeitherviolentcri
KimiyukiSudashouldbeaperfectcustomerforJapan’scar-makers.He’sayoung,successfulexecutiveatanInternet-servicesco
.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
输入一棵二元树的根结点,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。输出该树的深度3。二元树的结点定义如下:structSBinaryTreeNode//anodeofthe
触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。
在Excel97中,要使B5单元格中的数据为A2和A3单元格中数据之和,而且B5单元格中的公式被复制到其他位置时不改变这一结果,可在B5单元格中输入公式()。A.=$A$2+$A$3B.=A2+A3C.=A:2+A:3D.=SUM(A2:A3
在Excel2003中,利用“图表选项”对话框,可以设置或修改图标的()。
将异地的不同用户连接起来,让多个用户通过网络同时参加一个虚拟空间,共同体验虚拟经历,对同一虚拟世界进行观察和操作。这种系统是()。
Excel2003公式或函数中,当某个数字有问题时,单元格内就会显示“#NUM!”。
随机试题
数据库设计中反映用户对数据要求的模式是()。
材料1邓小平指出:“必须巩固人民民主专政,完善国家宪法和法律,并使之成为任何人都必须严格遵守的不可侵犯的力量,使社会主义法制成为维护人民权利,保障生产秩序、工作秩序、生活秩序,制裁犯罪行为,打击阶级敌人破坏的强大武器。”材料2“法令行则国
患者,男,60岁。被汽车撞伤后送入急诊室。有毛细血管再充盈延迟和低血压,心率为70次/分。请问: (1)此患者处于何种病理过程?可能的解释是什么? (2)此患者的心率变化和毛细血管再充盈延迟是否符合相应的病理过程的反应特征?为什么?
慢性肾小球肾炎肾功能不全患者,出现以下哪项改变即可诊断为尿毒症
急进型高血压的特点不包括
破产案件由()住所地人民法院管辖。
下列具体应对措施中专门为验证收入真实性的是()。
简述现代课堂管理一般应遵循的原则。
确定政府职能的主要依据是()。
Theethicalbehaviorrefersto______.InPara.four,theword"Rusken"mostprobablymeans______.
最新回复
(
0
)