首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
2005年11月金山笔试题。编码完成下面的处理函数。函数将字符串中的字符’*’移到串的前部分,前面的非’*’字符后移,但不能改变非’*’字符的先后顺序,函数返回串中字符’*’的数量。如原始串为:ab**cd**e*12,处理后为*****abcde12,函
2005年11月金山笔试题。编码完成下面的处理函数。函数将字符串中的字符’*’移到串的前部分,前面的非’*’字符后移,但不能改变非’*’字符的先后顺序,函数返回串中字符’*’的数量。如原始串为:ab**cd**e*12,处理后为*****abcde12,函
admin
2019-03-29
116
问题
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://www.kaotiyun.com/show/cxmZ777K
0
程序员面试
相关试题推荐
Shedidherwork______hermanagerhadinstructed.
大概描述一下ASP。NET页面的生命周期
C#中Property与Attribute的区别,他们各有什么用处,这种机制的好处在哪里?
输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4
设置用户在拨号前不需要等待扬声器发出拨号声音。
将C盘“职称考试”文件夹中的“试题.XLS”的属性设置为只读。
设置围绕表格的边框宽度的HTML代码是______。A.tablesize=#B.tableborder=#C.tablebordersize=#D.tableborder=#
在Excel97的某单元格内输入了一个公式后,单元格的显示为“#######”,这是由于()。A.所得结果没有意义B.所得结果长度超过了列宽C.公式输入有误D.所得结果被隐藏
在Excel97中,要在活动单元格内输入当天日期可使用组合键()。A.Ctrl+“:”B.Ctrl+Shift+“:”C.Alt+“:”D.Alt+Shift+“:”
若程序内已定义了一个结构型数据:TYPERECORDCHARACTER(len=30)::name,addressINTEGER::Phone_numberENDTYPERECORD则以下类型为RECORD的数组说明语句中正确的是__
随机试题
A.利多卡因B.奎尼丁C.普罗帕酮D.普萘洛尔E.胺碘酮可阻滞钠、钾、钙通道
根据《宪法》和有关法律的规定,下列关于我国国家机构的表述错误的是()。
试回答关于公路交通工程钢构件防腐技术条件的相关问题。粉末镀锌涂层的形成利用了()。
设计合同示范文本中规定的设计人的责任有()。
两个或两个以上公司合并,合并的各方解散,共同设立一个新的公司,这属于()。
产品的生命周期在不同的阶段会有不同的对策,下列说法错误的是()。
作为研究者的教师在教育教学活动的自然状态下,根据研究的问题进行有目的、有计划的看、思、记,这种方法叫作()。
一个标有“3.8V,2W”的小灯泡,通过实验描绘出这个小灯泡的伏安特性曲线,某同学按图1所示方式连接电路,画出图2所示小灯泡的I-U图象。(1)闭合开关S之前,滑动变阻器滑片P应该置于滑动变阻器的_______(填“左端”或“右端”)。(2)电流为0.
在Internet中,不需运行IP协议的设备是()。
______isoldfashionedinstylebutdesignedwithmanydoorstosaveenergy?______istop-mountedandcheaperthantheothertw
最新回复
(
0
)