随笔分类 -  字符串

摘要:题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“We are happy.”,则输出“We%20are%20happy.”。在原来的字符串上替换,并保证输入的字符串后面有足够的空余内存。思路:解法一:最容易想到的就是当遇到空格时,将后面的字符向后面移动2位。此方法的时间复杂度为O(N^2)。解法二: 首先遍历字符串,统计字符串中的空格数目,计算新的字符长度 newLen = oldLen + 2 * 空格数; 依次从字符串后面开始复制,分别用p1,p2指向旧新字符串的末尾,当遇到空格时,依次赋值‘0’,‘2’,‘%’;当p1 == p2时,过程终止(p1,p2之前的都.. 阅读全文
posted @ 2013-04-30 19:00 hust_枫 阅读(325) 评论(0) 推荐(0) 编辑
摘要:题目描述:编写一个高效函数,找到字符串中首个非重复字符。如"total"首个非重复字符为'o',"teeter"为'r'。(时间复杂度最好为O(N))思路:字符串仅限于使用ASCII码,可以用一数组来存放各个字符出现的次数,然后按字符串顺序找出首个次数为1的字符,并打印出来。时间复杂度:遍历字符串O(N),找出首个次数为1 的字符最坏情况O(N),故总的时间复杂度O(N);代码如下View Code 1 #include<stdio.h> 2 //找字符串中首个非重复字符,如"total"首 阅读全文
posted @ 2013-03-29 10:01 hust_枫 阅读(523) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示