Hzu挑战自我


私信TA

用户名:gxhzxyjsj

访问量:98759

签 名:

2024终究会过去,期待2025!

等  级
排  名 8
经  验 27853
参赛次数 67
文章发表 157
年  龄 0
在职情况 教师
学  校 贺州学院
专  业 软件工程

  自我简介:

弱鸡一个,继续努力!

解题思路:构建一个新数组p存放不重复元素,最后再把p重新复制给源数组s。

比较不重复元素的思路:第i个元素与第(i+1)~(len-1)个进行比较,如果相等,则表示有重复,把重复元素变为空格,并设置标志位为0。如果标志位为1,则表示没有重复,放入数组p中。 
 

注意事项:

参考代码:

#include <bits/stdc++.h>
using namespace std;
void DelPack(char *s)
{
	char *p;
	int k=0;
	int len=strlen(s);
	p=new char[len+1]; //构建一个新数组存放不重复元素 
	for(int i=0;i<len;i++)
	{
		int flag=1; 
		if(s[i]==' ') continue; 
		for(int j=i+1;j<len;j++)  //第i个元素与第i+1到第len-1个进行比较,如果相等,
			if(s[i]==s[j])        //则表示有重复,把重复元素变为空格,并设置标志位为0  
			{
				s[j]=' ';
				flag=0;
			}
		if(flag)    //如果标志位为1,则表示没有重复,放入数组p中 
			p[k++]=s[i];
	}
	p[k]='\0';
	strcpy(s,p);     //重新把字符串p复制给s,然后删除数组p 
	delete []p;
	return ;			
}
int main()
{
	char str[100];
	scanf("%s",str);
	DelPack(str);
	printf("%s",str);
	return 0; 
}


 

0.0分

2 人评分

  评论区

  • «
  • »