删除一个字符串中重复出现的字符

算法思想:以‘\0‘结束标志,遍历字符串元素surchr,让每个字符与输出output字符串每个元素做比较。一旦output中

最后一个元素与chr不等,output增加元素,否则,中间就用break跳出,开始判断下一个surchr

/***************1***************/
#include <iostream>
#include <string>
using namespace std;
int GetResult(const char* input, char* output);
int main()
{
string str;
getline(cin, str);
cout << str<<endl;
int len = str.length();
char* output = new char[len + 1];
if (output == NULL)
{
cout<<"heap allocator failed"<<endl;
return 0;
}
memset(output, 0, len+1);
int ret = 0;
ret = GetResult(str.c_str(), output);
for (int k=0; k<ret; k++)
{
cout<<output[k];
}

cout <<endl;
return 0;
}
int GetResult(const char* input, char* output)
{
if (input == NULL || output == NULL)
{
return 0;
}
const char* surStr = input;
output[0] = surStr[0];
int index = 1;
surStr++;
while(*surStr != ‘\0‘)
{
for (unsigned int i=0; i<strlen(output); i++)
{
if (*surStr == output[i])
{
break;
}
////output的最后一个非‘\0‘字符与*surStr不同时执行
if (i == strlen(output) - 1)
{
++index;
output[++i] = *surStr;
}
}
surStr++;
}
return index ;
}

时间: 2024-10-08 03:29:44

删除一个字符串中重复出现的字符的相关文章

leetcode——Remove Duplicates from Sorted List II 删除排序字符串中重复字符(AC)

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list. For example, Given 1->2->3->3->4->4->5, return 1->2->5. Given 1->1->1->2->3, return 2->3

&lt;!-- str.startsWith(&#39;胡&#39;) 检查一个 字符串中是否有某字符 返回true false --&gt;

1.<!-- str.startsWith('胡')  检查一个 字符串中是否有某字符 返回true false --> 2. vh 分享到选择其它项 复制本页链接 版本:CSS3 补充完善,提交问题欢迎微博上 @愚人码头 说明: 相对于视口的高度.视口被均分为100单位的vh 示例代码: h1 { font-size: 8vh; } 如果视口的高度是200mm,那么上述代码中h1元素的字号将为16mm,即(8x200)/100 兼容性: 浅绿 = 支持 红色 = 不支持 粉色 = 部分支持

判断一个字符串中是否含有中文字符:

python中的encode和decode: 首先,在Python中字符串的表示是 用unicode编码.所以在做编码转换时,通常要以unicode作为中间编码. decode的作用是将其他编码的字符串转换成unicode编码,比如 a.decode('utf-8'),表示将utf-8编码的字符串转换成unicode编码 encode的作用是将unicode编码的字符串转换成其他编码格式的字符串,比如b.encode('utf-8'),表示将unicode编码格式转换成utf-8编码格式的字符串

删除一个字符串中连续超过一次的空格

问题 删除一个字符串中连续超过一次的空格. 解决(Python) #! /usr/bin/env python #coding:utf-8 def del_space(string): split_string = string.split(" ") #以空格为分割,生成list,list中如果含有空格,则该空格是连续空格中的后一个 string_list = [i for i in split_string if i!=""] #去掉空格,生成list resul

Java清除字符串中重复出现的字符的代码

在工作过程,将做工程过程比较好的内容做个珍藏,如下内容是关于Java清除字符串中重复出现的字符的内容,应该是对大家有较大用. public class StringCtrl { public static void main(String[] args){ String s = "ajjbaacsa"; StringCtrl sctrl = new StringCtrl(); System.out.println(sctrl.rmRepeated(s)); } String rmRep

从一个字符串中删除另一个字符串中出现过的字符

定义一个函数,输入两个字符串,从第一个字符串中删除在第二个中出现过的所偶字符串.例如从第一个字符串"We are students."中删除第二个字符中"auiou"中出现过的字符得到的结果是"W r stdnts" 解题思路:利用哈希查找. #include <stdio.h> void deleteStr2FromStr1(char* str1, char* str2) { if(str1 == NULL || str2 == N

递归实现一个去除字符串中“重复出现的字符”

The string you will received as a parameter has too many characters. Your job is to remove characters from the string in the following order:    1.    Find the smallest i such that the i-th character and the (i+1)-th character of the string are same.

替换一个字符串中首次出现的字符为特定字符

replace函数可以直接把某个字符串或字段中的某个特定的值全部更改为需要替换的值 如果只替换第一次或第二次出现的字符,我们可以借助instr来获取实现: select replace(substr(col,1,instr(col,'a',1)+length('a')-1),'a','0') ||substr(col,instr(col,'a',1)+length('a')) from ( select 'c,a,b,c,a,d' as col from dual); postgresql: s

输出一个字符串中重复出现的子串和其出现的次数(JS实现)

题外话:一晃来到新公司四个月了,笔者已从JavaWeb开发转行做iOS开发了,基本上相当于完全从头开始吧!于是这几个月就忙于学习诡异的Objective-C和iOS了,项目比较忙一直没有时间把之前面试的题整理完.现在只有两道题还留有记录,整理一下分享出来. 这也是一类经典的基础算法题目了,忘记哪个公司的题了.笔者没什么算法功底,就用简单粗暴的方式实现了:还是JS: function recurStr(s){ var map = {}, t, i, j; for (i = 0; i <= s.le