首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
2005年11月金山笔试题。编码完成下面的处理函数。函数将字符串中的字符’*’移到串的前部分,前面的非’*’字符后移,但不能改变非’*’字符的先后顺序,函数返回串中字符’*’的数量。如原始串为:ab**cd**e*12,处理后为*****abcde12,函
2005年11月金山笔试题。编码完成下面的处理函数。函数将字符串中的字符’*’移到串的前部分,前面的非’*’字符后移,但不能改变非’*’字符的先后顺序,函数返回串中字符’*’的数量。如原始串为:ab**cd**e*12,处理后为*****abcde12,函
admin
2019-03-29
115
问题
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
程序员面试
相关试题推荐
定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。
大概描述一下ASP。NET页面的生命周期
某队列的声明如下:templateclassCQueue{public:CQueue(){}~CQueue(){}voidappendTail(constT&node);//appendaelementto
进程和线程分别怎么理解?
利用快捷方式向导,在桌面上为文件夹“C:\office”中的应用程序“EXCEL.EXE”创建名为“EXCEL”的快捷方式。
设置"考试"文件夹为"只读",并同时应用于所有子文件夹和文件。
对于PPoint中的超链,以下说法错误的是()。A.利用超级链接可跳转到同一演示文稿中任一张幻灯片B.利用超级链接可跳转到别的演示文稿C.利用超级链接可跳转到某个Internet地址D.利用超级链接只能跳转到文件类型为.ppt的文件
请取消太阳和月亮图形的组合。
请根据设计模板创建演示文稿,命名为“总结”,保存在D盘根目录下。
阅读以下关于税务管理系统方面的叙述,回答问题1和问题2。近年来,我国电子税务工作取得了长足进步,特别是2000年,税务管理信息化工作在国务院领导的直接关心和国家税务总局党组的具体指挥下,以五省四市“金税工程”的顺利开通、平稳运行为标志,取得了突破性
随机试题
进出口商品检验检疫
下列哪项不为蛇串疮的别称
根据《执业药师资格制度暂行规定》,执业药师取得执业药师资格证书后,必须在()。
下列哪一行为不成立使用假币罪(不考虑数额)?(2015年卷二15题)
某建筑物柱下基础为正方形基础,在作用效应的标准组合值下,基底平均压力值为pk=180kPa,其偏心距e=1/12b(b为基底宽度)。试问:在偏心荷载作用下,其基底最大、最小压力值pkmax(kPa)、pkmin(kPa)最接近下列()项。
下列不属于影响建筑工程项目的投资估算准确程度的因素是()。
下列股份有限公司符合法定条件,可以公开发行新股的是()。
论证有效性分析:分析下列论证中存在的缺陷和漏洞,选择若干要点,写一篇600字左右的文章,对该论证的有效性分析进行分析和评述。(论证有效性分析的一般要求是:概念特别是核心概念的界定和使用是否准确并前后一致,有无各种明显的逻辑错误,论证的论据是否成立并支持结论
“什么叫社会主义.什么叫马克思主义?我们过去对这个问题认识不是完全清醒的”。这种不清醒的突出表现是
OntheImportanceofBeingOptimisticForthispart,youareallowed30minutestowriteashortessay.Youshouldstartyour
最新回复
(
0
)