簡體   English   中英

計數相同的數字,如果出現不止一次,則僅發生一次

[英]count the same number , if appears more than once, as one occurence only

因此,我對c Sharp還是陌生的,並且一直在使用我的代碼,但無法弄清楚。 假設我有以下內容:

Code : 2 1 1 1 1 2
Guess: 2 2 1 2 2 1

首先,忽略猜測與代碼匹配的地方。 在那之后,只有

2 2 2 1

將留給猜測和

1 1 1 2

為代碼

如果您在其余的代碼中看到,則有3個2用於猜測,但在代碼中只有1個。 我想將三個2算作一次,但是我的代碼部分占了所有3個,我似乎無法將其算作一個。

這是我的代碼。 我只發布即時通訊出現問題的部分。

if (guess.Contains(Code[i]))
{
       if (guess.Distinct().Count() > 1)
       diffSpot++;
}

我嘗試使用distinct僅獲得唯一數字,並計數以查看如果其大於1,則表示存在重復(連續出現相同的情況),但我想我錯過了一些東西。 感謝您提供任何有用的提示和建議。

梁,

假設您所追求的是:

在此處輸入圖片說明

我有點喜歡LINQ:

using System.Linq;
int[] Code = {2, 1, 1, 1, 1, 2};
int[] Guess = {2, 2, 1, 2, 2, 1};
int total =
     Guess.Select((g, i) => new {g, i})
    .Where(x => x.g != Code[x.i])
    .Select(x => x.g).Distinct().Count();

返回2。希望這會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM