Design an algorithm and write code to remove the duplicate characters in a string without using any additional buffer.NOTE: One or two additinal variables are fine. An extra copy of the array is not.
算法:
1,检查是否重复的字符被找出!
2,跳过重复的字符,更新不是重复的字符。
#include<iostream>
using namespace std;
void removedup(char str[10]);
void main()
{
char s[10]="abercobie";
for(int i=0;i<10;i++)
cout<<s[i];
removedup(s);
for(int i=0;i<10;i++)
cout<<s[i];
}
void removedup(char str[])
{
if(str==NULL) return;
int len=10;
if(len<2)return;
int i,j;
int tail=1;//用于记录所有unique的字符
for(i=1;i<len;i++)
{ for(j=0;j<tail;j++)
if(str[i]==str[j]) break;
if(j==tail)
{
str[tail]=str[i];
tail++;
}
}
str[tail]=0;
}
本文介绍了一种不使用额外缓冲区删除字符串中重复字符的算法,并提供了完整的C++实现代码。该方法通过双层循环检查并跳过重复字符,只保留唯一的字符。
8375

被折叠的 条评论
为什么被折叠?



