-
删除小写字母字符串中重复字符
2017-08-06 22:07:36删除小写字母字符串中重复元素因为删除的是小写字母字符串,所以开辟一个数组b[26]
首先初始化b全部为false
如果对应的b[arr[i]]是false,则将false置为true,同时将arr[j] = arr[i],++j
(也就是说,假如该字符串为aaaabb,则在第一次遇到a时,将false置为true,后面在遇到a时,不在满足if条件,当遇到b时,此时i=4,j=1,将arr[j] = arr[i],也就是把b放在a后面
最后,在arr[j]位置放上’/0’void RemoveSameElement(char* arr) { bool b[26]; memset(b, 0, sizeof(b)); int j = 0; for (int i = 0; i < strlen(arr); ++i) { if (!b[arr[i]]) { b[arr[i]] = true; arr[j] = arr[i]; ++j; } } arr[j] = '\0'; }
除此以外,对代码进行优化。
还可以用位示图来解决,只需要一个int(4字节32位)即可实现。void RemoveSameElement2(char s[]) { unsigned int check = 0; int len = strlen(s); int j = 0; int v = 0; for (int i = 0; i < len; i++) { v = s[i] - 'a'; if (!(check & (1 << v))) { s[j] = s[i]; j++; check |= (1 << v); } } s[j] = '\0'; }
-
【字符串】删除小写字母字符串中重复字符
2017-08-05 14:56:15问题描述删除小写字母字符串中重复字符。如果可以,优先删除重复字符中排在比他小字符前面的字符。 比如,输入:bbcacdww;输出:bacdw 提示:暴力求解效率太低,考虑哈希思想。问题分析就是将原来字符串中的相同的...问题描述
删除小写字母字符串中重复字符。如果可以,优先删除重复字符中排在比他小字符前面的字符。 比如,输入:bbcacdww;输出:bacdw
提示:暴力求解效率太低,考虑哈希思想。
问题分析
就是将原来字符串中的相同的删除一个,这个考虑是否需要额外的存储空间,
实现1、空间复杂度为O(1)
void RemoveSame(string& s) { int temp = s[0]; for (size_t i = 1; i < s.size(); ++i) { if (s[i] == temp) s.erase(i, i + 1); else temp = s[i]; } }
实现2、辅助空间不限制
考虑到哈希或者,另外一个相同的存储空间,
遍历原数组,将拷贝到新的存储空间,遇到相同的不拷贝。void RemoveSame2(string& s) { string temp(s,0,1); for (size_t i = 1; i < s.size(); ++i) { if (temp[temp.size()-1] != s[i]) temp += s[i]; } s = temp; }
哈希表的方法
void RemoveSame3(string& s) { char count[256] = { 0 }; for (size_t i = 0; i < s.size(); ++i) { count[s[i]]++; } int k = 0; for (size_t j = 0; j < 256; ++j) { if (count[j] != 0) s[k++] = j; } s[k] = 0; }
-
删除小写字母字符串中重复字符。
2017-08-10 20:31:12删除小写字母字符串中重复字符。比如,输入:bbcacdww;输出:bacdw。 void DeleteString(char* pstr) { if (pstr == NULL) return; //创建哈希表并初始化 char *pHash = pstr; const int tablesize = 256; ...删除小写字母字符串中重复字符。比如,输入:bbcacdww;输出:bacdw。
void DeleteString(char* pstr) { if (pstr == NULL) return; //创建哈希表并初始化 char *pHash = pstr; const int tablesize = 256; int hashtable[tablesize]; for (int idx = 0; idx < tablesize; ++idx) hashtable[idx] = 0; //统计每个字符出现的次数 while (*pHash != '\0') hashtable[*(pHash++)]++; pHash = pstr; int k = 0; while (*pHash != '\0') { if (hashtable[*pHash]) { pstr[k++] = *pHash; pHash++; if (hashtable[*pHash] > 1) pHash++; } } pstr[k] = 0; }
-
设计一个函数实现将一个字符串中的大写字符变为小写字符,小写字符变为大写字符,数字不变,删除其他字符
2013-09-30 18:03:20//为了方便删除字符串中某些特殊的字符,这里用到了集合,方便删除指定位置的元素 for(int i=0;i();i++){ list.add(s.charAt(i)+""); } //遍历集合,进行字符创大小写的转换 for(int i=0;i();i++){ ...例如 String str=“abc123ABC@#”;调用这个函数执行后得到的结果是:ABC123abc。
贴出代码:
package com.lovo.t_9_22; import java.util.ArrayList; import java.util.List; public class StringExchange { public static void main(String[] args) { String s = "ABCD23efg#abcd89EFG^"; StringBuffer sb = new StringBuffer(); List<String> list = new ArrayList<String>(); //为了方便删除字符串中某些特殊的字符,这里用到了集合,方便删除指定位置的元素 for(int i=0;i<s.length();i++){ list.add(s.charAt(i)+""); } //遍历集合,进行字符创大小写的转换 for(int i=0;i<list.size();i++){ int size=(int)list.get(i).charAt(0); if(size<=90&&size>64){//根据字母unicode编码值判断是大写字母,小写字母还是数字 String str = list.get(i).toLowerCase(); sb.append(str); }else if(size>=97&&size<=122){ String str = list.get(i).toUpperCase(); sb.append(str); }else if(size>=48&&size<58){ sb.append(list.get(i)); }else{ list.remove(i); } } // char str='9';//65-90,97-122,48-57 System.out.println(sb); } }
-
【数据结构】中删除小写字母字符串中重复字符
2017-08-06 19:06:57【数据结构】中删除小写字母字符串中重复字符 -
删除小写字母字符串中重复字符。如果可以,优先删除重复字符中排在比他小字符前面的字符。
2017-08-18 17:05:23将N个字符的数组,循环右移K位。时间复杂度O(N)。思路1申请一块空间大小为之前的2倍,然后左旋K位就代表,新字符串的新起始下标为之前的begin加偏移量k,把新字符串返回即可。这个时间复杂度为O(N)思路2保存0号字符的... -
实现函数f,将字符串中的大写字符转换为小写,小写字符转换为大写,数字不变,删除其他字符。
2020-06-09 11:05:52string f(string data) { StringBuilder sb = new StringBuilder(); int offset = 'A' - 'a'; if (!string.IsNullOrEmpty(data)) { foreach (var item in data) { ... -
实现循环右移和删除小写字母字符串中重复字符——题集(二十)
2017-08-06 15:00:47实现循环右移和删除小写字母字符串中重复字符——题集(二十) 今天分享一下实现循环右移和删除小写字母字符串中重复字符的源代码和测试用例。 实现循环右移的源代码和运行示例。 将N个字符的数组,循环右移K... -
字符串删除字符操作和大写转小写操作
2019-10-22 00:39:52该程序应该执行以下操作:在给定的字符串中,由大写和小写拉丁字母组成: 删除所有元音, 插入字符“。” 在每个辅音之前 将所有大写辅音替换为相应的小写辅音。 元音是字母“ A”,“ O”,“ Y”,“ E”,“ U”... -
字符串删除数字大写变小写
2015-03-29 19:34:43输入一个字符串,删除字符串出现的数字,然后将大写字母变为小写字母输出。 #include #include using namespace std; void main(){ string s; cin>>s; int l=s.length(); for(int i=0;i;i++){ ... -
删除输入字符串中的数字,并将大写改小写
2015-07-01 18:29:20//删除输入字符串中的数字,并将大写改小写 #include<iostream> #include using namespace std; int main() { string s; cout输入字符串:"; cin>>s; for(int i = 0;i ();i++) { if(s -
map实现删除给定字符串中的小写字母
2018-08-02 16:47:00def del_lowerletters(s): if s>='a' and s<='z': return " " else: return s print("".join(map(del_lowerletters,"ahfAADDVCGHhgjggg"))) (map(del_lowerletter... -
题目:字符串删除数字大写变小写
2015-04-10 09:36:46华为机试—字符串删除数字大写变小写 输入一个字符串,删除字符串出现的数字,然后将大写字母变为小写字母输出。 package com.soft.wk; import java.io.BufferedReader; import java.io.IOException; import ... -
汇编语言-删除字符串中的数字,将小写字母改写为大写字母
2017-12-17 16:04:38汇编语言-删除字符串中的数字,将小写字母改写为大写字母 -
59.删除字符串中的小写字母c
2015-06-24 18:41:20给定程序中函数fun的功能是:从s所指字符串中删除所有小写字母‘c’ #define _CRT_SECURE_NO_WARNINGS #include void fun(char *s) { int i, j; for (i = j = 0;s[i] != '\0';i++) if (s[i] != 'c') s[j+... -
19.编写函数fun,该函数的功能是:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。
2020-05-13 16:49:2019.编写函数fun,该函数的功能是:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。 例如:若程序执行时输入字符串为:turbo c and borland c++,从键盘上输入字符n,则输出后变为:turbo c ad ... -
华为机试—字符串删除数字大写变小写
2015-01-05 00:59:05输入一个字符串,删除字符串出现的数字,然后将大写字母变为小写字母输出 #include #include using namespace std; int main(int argc, char *argv[]) { string s; while(cin>>s) { for(string::size_type i=0;... -
python中字符串删除个别字符_在python中从长字符串中删除某些字符
2021-01-13 07:00:09我可以让它删除所有的html标记,以及脚本标记之间的所有内容,但是我不知道如何删除所有以反斜杠开头的字符。页面将有\t、\n和\x**,其中*似乎是任何小写字母或数字。在我如何编写一个用空格替换字符串的所有这些... -
删除反复字符
2016-02-02 10:29:00删除反复字符 ...须要保证字符出现的先后顺序,而且区分大写和小写。 具体描写叙述: 接口说明 原型: intGetResult(constchar*input,char*output) 输入參数: input输入的字符串 ... -
删除重复字符
2019-05-17 09:58:39删除重复字符 题目描述 牛牛有一个由小写字母组成的字符串s,在s中可能有一些字母重复出现。比如在"banana"中,字母’a’和字母’n’分别出现了三次和两次。 但是牛牛不喜欢重复。对于同一个字母,他只想保留第一次出现...
收藏数
2,225
精华内容
890
-
ubuntu下的apt-get内网本地源的搭建
-
Ukesoppgaver-网络编程-源码
-
实现 MySQL 读写分离的利器 mysql-proxy
-
机载激光雷达沙尘探测能量优化配置的统计研究
-
vue3从0到1-超详细
-
ScrapytIems.py
-
精益用户体验(UX):摆脱只注重结果的工作
-
货币转换微服务:使用Spring Cloud的货币转换微服务-源码
-
深度学习-源码
-
Java JDBC自定义封装工具类
-
libFuzzer视频教程
-
02-27 windows下MySQL安装流程
-
可用性测试方法:卡片分类法
-
Samba 服务配置与管理
-
JAVA 常用类
-
NFS 网络文件系统
-
phpstorm实现保存(ctrl+s)同时格式化代码的方法
-
Galera 高可用 MySQL 集群(PXC v5.7+Hapro)
-
OpenCV-学习历程22-像素重映射(cv::remap)
-
虚函数,虚表深度剖析