精华内容
下载资源
问答
  • //为了方便删除字符串中某些特殊的字符,这里用到了集合,方便删除指定位置的元素 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);
    	}
    }
    


    展开全文
  • 删除小写字母字符串中重复元素

    因为删除的是小写字母字符串,所以开辟一个数组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';
    }
    展开全文
  • 问题描述删除小写字母字符串中重复字符。如果可以,优先删除重复字符中排在比他小字符前面的字符。 比如,输入: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;
    }
    展开全文
  • 【数据结构】中删除小写字母字符串中重复字符

    分析问题:

    删除小写字母字符串中重复的字符,例如:aabcdeec,删掉重复的字符后:abcde

    这个问题使用的方法是:定义i=0和两个下标j、k,开始时都指向第二个a,当a[k]不等于a[i]时,k下标进行++;

    当a[k]=a[i]的时候,就将a[k]的值赋值给a[j],依次往后进行,直到a[k]的值等于'\0'的时候,将a[j]的值赋值为'\0'。

    将相同的字符串进行删除。

    代码的实现:

    #include<iostream>
    using namespace std;
    
    void DeleteCommonStr(char a[])
    {
    	int i = 0;
    	while (a[i] != '\0')
    	{
    		int j = i + 1;
    		int k = i + 1;
    		while (a[k] != '\0')
    		{
    			if (a[k] != a[i])
    			{
    				a[j] = a[k];
    				++j;
    				++k;
    			}
    			else
    			{
    				++k;
    			}
    		}
    		a[j] = '\0';
    		++i;
    	}
    }
    int main()
    {
    	char a[100];
    	gets(a);
    	DeleteCommonStr(a);
    	cout << "删除相同的字符串之后为:"<<a << endl;
    	system("pause");
    	return 0;
    }
    运行的结果:



    展开全文
  • 删除小写字母字符串中重复字符。比如,输入:bbcacdww;输出:bacdw。 void DeleteString(char* pstr) { if (pstr == NULL) return; //创建哈希表并初始化 char *pHash = pstr; const int tablesize = 256; ...
  • string f(string data) { StringBuilder sb = new StringBuilder(); int offset = 'A' - 'a'; if (!string.IsNullOrEmpty(data)) { foreach (var item in data) { ...
  • 字符删掉小写字母

    2021-02-24 16:15:54
    #include <stdio.h> #include <string.h> int main() { char s[20]; int i; gets(s); for(i=0;s[i]!=’\0’;i++){ if(s[i]>=‘a’&&s[i]<=‘z’) continue; else printf("%c",s[i]);...}``
  • 实现循环右移和删除小写字母字符串中重复字符——题集(二十)  今天分享一下实现循环右移和删除小写字母字符串中重复字符的源代码和测试用例。   实现循环右移的源代码和运行示例。  将N个字符的数组,循环右移K...
  • 将N个字符的数组,循环右移K位。时间复杂度O(N)。思路1申请一块空间大小为之前的2倍,然后左旋K位就代表,新字符串的新起始下标为之前的begin加偏移量k,把新字符串返回即可。这个时间复杂度为O(N)思路2保存0号字符的...
  • java怎样将大写字母转换成小写字母具体代码如下,字符串中大、小写互转 1)输入 第一行只有一个整数m(m都说欲擒故纵最能虏获芳心,可小编拿什么对抗她在皱眉时,小编忍不住嘘寒问暖的情绪。jquery 字符串大写字母转...
  • 这里 编写一个方法,输入一个小写字符,将其转换为大写,输入一个大写字符,转换为一个小写。写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入...
  • 该程序应该执行以下操作:在给定的字符串中,由大写和小写拉丁字母组成: 删除所有元音, 插入字符“。” 在每个辅音之前 将所有大写辅音替换为相应的小写辅音。 元音是字母“ A”,“ O”,“ Y”,“ E”,“ U”...
  • 输入一个字符串,删除字符串出现的数字,然后将大写字母变为小写字母输出 #include #include using namespace std; int main(int argc, char *argv[]) { string s; while(cin>>s) { for(string::size_type i=0;...
  • 19.编写函数fun,该函数的功能是:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。 例如:若程序执行时输入字符串为:turbo c and borland c++,从键盘上输入字符n,则输出后变为:turbo c ad ...
  • 编写函数function,该函数的功能是:从字符删除指定的字符,同一字母的大、小写按不同字符处理。 2 、温馨提示 C试题汇总里可用于计算机二级C语言笔试、机试、研究生复试中C程序...
  • 输入一个字符串,删除字符串出现的数字,然后将大写字母变为小写字母输出。 #include #include using namespace std; void main(){ string s; cin>>s; int l=s.length(); for(int i=0;i;i++){ ...
  • 华为机试—字符删除数字大写变小写 输入一个字符串,删除字符串出现的数字,然后将大写字母变为小写字母输出。  package com.soft.wk; import java.io.BufferedReader; import java.io.IOException; import ...
  • —-想了解c语言将字符串中的小写字母转换成大写字母分享的全部内容且更多的C语言教程关注描述给定一个字符串,将其中所有的小写字母转换成大写字母。输入输入一行,包含一个字符串(长度不超过100,可能包含空格)。...
  • private static string RemoveNotLetter(string title) { var listSign = new List { "|", "'", ",", "&", ".", "!" }; var notLetter = Regex.Split(title, @"[a-zA-Z]/[0-9]", Re
  • 汇编语言-删除字符串中的数字,将小写字母改写为大写字母
  • //删除输入字符串中的数字,并将大写改小写 #include<iostream> #include using namespace std; int main() { string s; cout输入字符串:"; cin>>s; for(int i = 0;i ();i++) { if(s
  • 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+...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 215,617
精华内容 86,246
关键字:

删除小写字符