2016-08-12 13 views
-2

隣り合う2つのアイテムを1つのアイテムで置き換える方法はありますか?このようなアレイにおいて隣り合う2つのアイテムを1つのアイテムで置換する

int[] array = new int[]{ 1, 2, 2, 3, 3, 4, 5, 3, 2 }; 

この中に得られた、互いに隣接している同一の項目を削除:

{ 1, 2, 3, 4, 5, 3, 2 }; 

編集

:私が終わる何ここ を
int[] array = new int[]{ 1, 2, 2, 3, 3, 4, 5, 3, 2 }; 
int last = 0; 
List<int> Fixed = new List<int>(); 
foreach(var i in array) 
{ 
    if(last == 2 && i == 2 || 
     last == 3 && i == 3) 
    { 
    } 
    else 
    { 
     Fixed.Add(i); 
     last = i; 
    } 
} 
return Fixed.ToArray() // Will return "{ 1, 2, 3, 4, 5, 3, 2 }" 

ただし、すべてを入力する必要があります私はスキップしたいもの...

+0

はいあります。何を試しましたか? – user1620220

+0

これを行う方法はたくさんあります。何か試しましたか?小さなヒント:配列を縮小することはできないので、新しい配列を割り当てる必要があります。 – dasblinkenlight

+0

http://stackoverflow.com/questions/457453/remove-element-of-a-regular-array –

答えて

1
int[] array = new int[] { 1, 2, 2, 3, 3, 4, 5, 3, 2 }; 
//int[] output = array.Distinct().ToArray();Use this line if you want to remove all duplicate elements from array 
int j = 0; 
while (true) 
{ 
    if (j + 1 >= array.Length) 
    { 
     break; 
    } 
    if (array[j] == array[j + 1]) 
    { 
     List<int> tmp = new List<int>(array); 
     tmp.RemoveAt(j); 
     array = tmp.ToArray(); 
    } 
    j++; 
} 
関連する問題