首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
2005年11月金山笔试题。编码完成下面的处理函数。函数将字符串中的字符’*’移到串的前部分,前面的非’*’字符后移,但不能改变非’*’字符的先后顺序,函数返回串中字符’*’的数量。如原始串为:ab**cd**e*12,处理后为*****abcde12,函
2005年11月金山笔试题。编码完成下面的处理函数。函数将字符串中的字符’*’移到串的前部分,前面的非’*’字符后移,但不能改变非’*’字符的先后顺序,函数返回串中字符’*’的数量。如原始串为:ab**cd**e*12,处理后为*****abcde12,函
admin
2019-03-29
84
问题
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
程序员面试
相关试题推荐
Shedidherwork______hermanagerhadinstructed.
[A]Theperson-skillsmatchapproachtoselection[B]Theimpactsofbadselectiondecisions[C]Theimportanceofstructu
设置网络连接,使之在连接后在通知区域显示连接状态,用【自动获取IP地址】的方式获得IP,并查看该连接的IP地址和DNS服务器地址。
从当前界面上的菜单或“网络任务”开始创建拨号连接,通过Modem连接到In-ternet,拨号时先拨0,再拨16300,用户名和密码均为16300,将创建的连接的名称命名为:linkl,然后在桌面上创建一个到此连接的快捷方式。除此之外,其余选项均使用默认设
通过【控制面板】中的添加硬件向导,安装Modem的驱动程序。让系统自动搜索安装软件,Modem的型号为:IntelV92HaMDataFaxVoice。
Powerpoint2000中,使用()菜单中的“幻灯片母版”命令,进入幻灯片母版设计窗口,更改幻灯片的母版。A.编辑B.工具C.视图D.格式
Word的样式是一组巳命名的字符和()格式的组合。
对数据排序时,下列操作错误的是()A.选清单中任意一个单元格B.选清单做排序操作C.选清单中任意一行排序D.选工作表中任意一个单元格排序
某机构拟建设一个网络,委托甲公司承建。甲公司的赵工程师带队去进行需求调研,在与委托方会谈过程中记录了大量信息,经过整理,归纳出如下主要内容:用户计算机数量:97台:业务类型:办公:连接Internet:需要;分布范围:分布在一栋楼房的三层内(另附位
若系统中存在n个等待事务Ti(i=0,1,2,…,n-1),其中:T0正等待被T1锁住的数据项A1,T1正等待被T2锁住的数据项A2,…,Ti正等待被Ti+1锁住的数据项Ai+1,…,Tn-1正等待被T0锁住的数据项A0,则系统处于___________状
随机试题
消化道共有的运动形式是
A.HCO3-↓,pH↑,PaCO2↓B.HCO3-正常,pH↓,PaCO2↓C.HCO3-正常或↑,pH↓,PaCO2↓D.HCO3-↑,pH↑,PaCO2正常或↑E.HCO3-↓,pH↓,PaCO2正常或↓代谢性酸中毒
肝囊肿合并感染时,与下面哪种疾病不易鉴别
下列氨基糖苷类抗生素均对前庭功能有损害.表现为眩晕、恶心、呕吐、眼球震颤和平衡障碍,发生率最高的药物是
胃食管反流病的主要发病机制不包括
马克思一生最重要的理论发现是
设二次型f(x1,x2,x3)在正交变换x=Py下的标准形为2y12+y22一y32,其中P=(e1,e3,e3)。若Q一(e1,-e3,e3),则f(x1,x2,x3)在正交变换x=Qy下的标准形为
AgeDiscriminationBytheyear2000nearlyhalftheworkforceinEuropeareover40andyetthroughoutEuropethereisadee
WhichofthefollowingisNOTtrueofVerbalizelt?
Aresearchersaysleadintheenvironmentcouldbeamajor【D1】______byyoungpeople.DoctorHerbertNeedlemanisaprofessorat
最新回复
(
0
)