首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
2005年11月金山笔试题。编码完成下面的处理函数。函数将字符串中的字符’*’移到串的前部分,前面的非’*’字符后移,但不能改变非’*’字符的先后顺序,函数返回串中字符’*’的数量。如原始串为:ab**cd**e*12,处理后为*****abcde12,函
2005年11月金山笔试题。编码完成下面的处理函数。函数将字符串中的字符’*’移到串的前部分,前面的非’*’字符后移,但不能改变非’*’字符的先后顺序,函数返回串中字符’*’的数量。如原始串为:ab**cd**e*12,处理后为*****abcde12,函
admin
2019-03-29
73
问题
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
程序员面试
相关试题推荐
Directions:Inthissection,youareaskedtowriteanessaybasedonthefollowinginformation.Makecommentsandexpressy
YouaredoingyourUCLAapplicationforgraduateadmission,andyouneedtworeferenceletters.Pleaseemailyourformerforeign
将一整数逆序后放入一数组中(要求递归实现)
设置本地连接添加“Microsoft网络的文件和打印机共享”。
设置拨号连接属性,使用终端窗口功能登录到远程计算机。
把用户状态设置为忙碌。
重新发送“已发送邮件”文件夹下的,主题为“生日聚会”的邮件,并将收件人地址更改为“liujian@lnu.edu.cn”。
在金山网镖中添加一个端口过滤规则,其中端口为3080,协议为TCP,类型为远程,操作为禁止。
将当前远程目录中名为“2.10”的文件夹,添加到传输队列中,并进行传输。
在foxpro中定义数据库结构时,字段名的宽度最多可以是()。A.2B.4C.10D.16
随机试题
在水溶液中或熔融状态下能够导电的化合物叫电解质。
肾活检的石蜡切片和电镜标本必须含有
脑梗死中最常见的类型常见病因为心房纤颤、动脉粥样硬化斑块脱落
某年某月某日14时7分,某市煤气公司液化气站的102号400m3液化石油气球罐发生破裂,大量液化石油气喷出,顺风向北扩散,遇明火发生燃烧,引起球罐爆炸。由于该球罐爆炸燃烧,大火烧了19个小时,致使5个400m3的球罐,4个450m3卧罐和8000多只液化石
会计人员办理交接手续,由单位负责人监交。()
下列选项中,不属于CBOT交易的美国中期国债期货合约的是()。
在发行新股招股说明书中,发行人应披露设立独立董事(如有)的情况,包括独立董事的人数,独立董事发挥作用的制度安排以及实际发挥作用的情况等。()
贷款项目评估中,税金审查的内容不包括()。
函数f(x)=ln|x一1|的导数是()
Whenisthetrainleaving?
最新回复
(
0
)