从字符串中“aecbcda”找出不重复的字符组成的顺序子串“aecbd”

题目:

从字符串中“aecbcda”找出不重复的字符组成的顺序子串“aecbd”,用最优的时空复杂度。 答题说明:该题为手动判卷,答案只要写对即可,不用严格满足字符比对。

解答:

#include<stdio.h>
#include<string.h>
#include<malloc.h>
char* LongString(char* str,int length)
{
	if(str==NULL||length==0)
		return NULL;

	char* temp=(char*)malloc(sizeof(char)*length);
	temp[0]=str[0];
	int i=1;
	for(i;i<length;i++)
	{
		int j=0;
		int len=strlen(temp);
		char currentStr=str[i];
		int flag=0;
		for(j;j<len;j++)
		{	
			if(temp[j]==currentStr)
			{
				flag=1;
				break;
			}
		}
		if(flag==0)
		{
			temp[len]=currentStr;
			len++;
		}
	temp[len]='\0';
	}
	return temp;

}

int main(int argc, const char *argv[])
{
	char *str="lkjrdfsd";
	printf("%s\n",LongString(str,strlen(str)));
	return 0;
}

发布了160 篇原创文章 · 获赞 316 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/ShawnWang1994/article/details/99708805