删除空格时间0(n),空间o(1)
来源:互联网 发布:csgo网络连接失败 编辑:程序博客网 时间:2024/06/14 22:44
删除空格要求时间0(n),空间o(1)。这类型题目经常出现在笔试或者面试中,故我将此类问题做一总结。
方法一:
int findKg(char* str,int st){for( ; str[st] != '\0'; ++st){if(str[st] == ' '){return(st);}}return(-1);}int findCh(char* str,int st){for( ; str[st] != '\0'; ++st){if(str[st] != ' '){return(st);}}return(-1);}void eraseKg(char* str){int kg,ch;kg = ch = -1;while(1){kg = findKg(str,kg + 1);ch = findCh(str,kg + 1);if(kg == -1 || ch == -1){break;}swap(str[kg],str[ch]);}for(int i = 0; str[i] != '0'; ++i){if(str[i] == ' '){str[i] = '\0';return;}}}
方法二:
void eraseKg1(char* str){int i,j;i = -1; for(j = 0; str[j] != '\0'; ++j){if(str[j] != ' '){str[++i] = str[j];}}str[++i] = '\0';}
题目变形:将连续的多余一个的空格只剩一个
方法一:利用删除空格算法,第一次遍历数组要将连续空格的第一个空格修改为’\0’,调用删除空格算法(删除空格算法中遍历字符串不能用str[j]!=’\0’判断循环结束,而是在第一次遍历中记录字符串长度),最后将空格修改回来即可。
方法二:类似删除空格算法的方法二,只是将连续空格当成一个字符处理
//有连续空格只保留一个void erasekg2(char* str){int i,j;i = -1;for(j = 0; str[j] != '\0'; ++j){//两个以上的空格作为一个字符处理while(str[j] == ' ' && str[j] == str[j + 1]){ ++j;} str[++i] = str[j];}str[++i] = '\0';}
本题目还可以将删除空格改成删除指定字符。
- 删除空格时间0(n),空间o(1)
- (科大讯飞)删除字符串中的连续空格(只保留一个),O(n)时间复杂度,O(1)空间复杂度
- 删除字符串中的连续空格(只保留一个),O(n)时间复杂度,O(1)空间复杂度
- 删除字符串中的某些字母O(N)时间O(1)空间
- 稳定排序问题,要求O(n)时间,O(1)空间
- 时间o(n)空间o(1) 奇在前偶在后
- 时间复杂度O(n),空间复杂度O(1)的排序
- 时间复杂度为O(n),空间复杂度为O(1)
- LeetCode: Longest Valid Parentheses O(n)时间 O(1)空间
- O(N)时间复杂度、O(1)空间复杂度 构造数组
- 数字排序 o(n)时间 o(1)空间
- 数字排序 o(n)时间 o(1)空间
- LeetCode 135. Candy (O(n)时间 O(n)和O(1)空间的两种实现)
- 如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- 如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- 如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- 时间O(n)/空间O(1)实现长n字符串前m个移到末尾
- 如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- Android使用AIDL实现进程间通信
- ajax set session can not save
- 负载过高需要注意的几点
- win7下使用EasyBCD安装ubuntu12.10
- 压缩跟踪Compressive Tracking源码理解
- 删除空格时间0(n),空间o(1)
- Android中的长度单位详解
- 关于PS降噪的两种方法
- Hello World
- android 对话框大全
- C++多文件项目编译
- ssh 事务不能回滚 Could not roll back Hibernate transaction; nested exception is org.hibernate.Transaction
- python:_, __ 和__xx__辨异
- SQL SERVER 合并重复行,行列转换(sql server2000 里面如何实现oracle10g的 wmsys.wm_concat() 的功能?)