首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
2005年11月金山笔试题。编码完成下面的处理函数。函数将字符串中的字符’*’移到串的前部分,前面的非’*’字符后移,但不能改变非’*’字符的先后顺序,函数返回串中字符’*’的数量。如原始串为:ab**cd**e*12,处理后为*****abcde12,函
2005年11月金山笔试题。编码完成下面的处理函数。函数将字符串中的字符’*’移到串的前部分,前面的非’*’字符后移,但不能改变非’*’字符的先后顺序,函数返回串中字符’*’的数量。如原始串为:ab**cd**e*12,处理后为*****abcde12,函
admin
2019-03-29
102
问题
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
输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输入整数22和如下二元树10
四个工人,四个任务,每个人做不同的任务需要的时间不同,求任务分配的最优方案。(2005年5月29日全国计算机软件资格水平考试——软件设计师的算法题)。
在用户管理组administrators中添加本地用户“sy”。
利用写字板新建一个类型为"文本文档"的文件,内容为"祝你取得成功!"。保存在C:\,文件名为LX1.TXT。
利用“开始”菜单“所有程序”启动“计算器”应用程序。
在幻灯片播放过程中,要想停止播放,可以按()。A.End键B.Esc键C.Enter键D.Home键
在foxpro中定义数据库结构时,字段名的宽度最多可以是()。A.2B.4C.10D.16
随机试题
下列关于证券产品进场时机选择的说法中,不正确的是()。
窝沟封闭酸蚀牙面的范围一般是()
不引起剥脱性龈病损的疾病是
下列高压开关设备试验的内容中,不属于高压真空开关试验的内容是()。
2010年初某企业房产原值3000万元,其中厂房原值2600万元,厂办幼儿园房产原值300万元,地下工业用仓库原值100万元。拥有自重10吨载货汽车10辆,7.8吨挂车5辆。该企业2010年发生如下业务:(1)7月20日购置2.5吨客货两用车2辆,
社会主义市场经济条件下按劳分配的主体是()。
在按份共有关系存续期间,如果共有人没有约定,共有人实施的下列行为应当经占份额2/3以上的共有人同意方能实行的是()。
设f(x)是连续的偶函数,则其原函数F(x)一定是().
Americansusemanyexpressionswiththeword"dog".PeopleintheUnitedStateslovetheirdogsandtreatthemwell.【B1】______H
Nooneshouldbeforcedtowearauniform【C1】______anycircumstance.Uniformsaredemandingtothehumanspiritandtotallyunne
最新回复
(
0
)