文字列内の重複要素を削除する方法

繰り返しエレメントの文字列中の1のすべての文字は一度だけ表示される文字を残し、削除しました

C言語では、そのような暴力の解体など、多くのアルゴリズムが存在する。このプロセスの実現である新しいアプリケーションの配列となるよう
主にこの新しいアルゴリズムを理解するために、単純な配列のために適用する方法について話をするすべての人のために、今日の小さな
配列の最初の長さが不確定であり、すべての要素の数は非常に混乱を表示されますが、アレイ全体純粋反復は、モバイルと、この最初の配列は非常に面倒な要素が二回とベース繰り返さ本当にある配列の同じ、非常にエラーが発生しやすい、小さな暴力的な解体を注文するようなものである場合偶数回は、私は、アルゴリズムを変えそうすることを、同じではありません。
まず、我々は整数とダイナミックな文字配列の動的な配列を必要とする、整数配列は、文字の動的な配列は、新しいアプリケーションに保存されているときに、この発生数はAで、され、その結果、各文字は表示されませんでした回数を記録します新しい動的値レコード長文字列、最後の最後に新しいアプリケーションの配列プラス**「\ 0」**、こうした新しい配列が誕生しました。
ソースターム
の#include "COMMON.Hは"
//配列重複文字は記載しない戻り
CHAR * DeletePubChar(CHAR * P)
{
// 3; int型SZ =(INT)strlen§
のchar * Q =(CHAR *)のmalloc(はsizeof (CHAR)(+ SZ 1)); //メモリ空間複数のアプリケーションを格納するための'\ 0'
INT
ARR =(INT *)はmalloc(はsizeof(INT)* SZ);
のmemset(ARR、0、はsizeof(INT)SZ );
INT I = 0;
int型J = 0;
int型K = 0;
I <SZ;(I = 0のためのI ++)
{
(; J <SZ; ++、J、J = 0)のための
{
IF(P [I] == P [J])
ARR [I] + = 1;
}
IF(ARR [I] <= 1)
{
Q [K] = P [i]は、
K ++;
}
}
、Q [K + 1] = '\ 0'。
Qを返します。
}
メインINT()
{
char型ARR [] =「abbascxxxx」。
チャー
PP = DeletePubChar(ARR)。
printf( "%s"は、PP)。
システム(「一時停止」)。
0を返します。
}

このような実現は、時間と空間の複雑さは、暴力の解体よりも高いですが、それは非常に良好な安定性である確かにあります。スマートは、あなたはあなたについてどのように理解していませんか?

公開された33元の記事 ウォン称賛13 ビュー2483

おすすめ

転載: blog.csdn.net/flf1234567898/article/details/104637436