2015-12-23 82 views
2

這是問題;Java CodingBat數組到列表

http://codingbat.com/prob/p153748

給定兩個int s,各範圍10..99,如果存在出現在兩個數字的數字,如在12和23(注2返回true:除法,例如n/10,給人留下的數字,而% 「國防部」 n%10給右邊的數字)

shareDigit(12, 23) → true 
shareDigit(12, 43) → false 
shareDigit(12, 44) → false 

我嘗試:d

public boolean shareDigit(int a, int b) { 
     boolean answer = false; 
     int left = a/10; 
     int right = a % 10; 
     if(Arrays.asList(b).contains(left) ||Arrays.asList(b).contains(right)){ 
      answer = true; 
     } 
     return answer; 
} 

不知道爲什麼它永遠不會返回true,也這是我第一次使用數組列表,以便隨時添加提示:d

+1

你知道Arrays.asList是幹什麼的嗎?你爲什麼認爲這對你有幫助? – Tom

+0

嗯爲什麼列表... :)那麼爲什麼不試試這個(B +「」)。contains(left) – saurabh

+0

@tom我不是很熟悉,但是這是當我想要檢查時告訴我做的如果一個元素在一個數組中。 – Hello

回答

2

Arrays.asList(b)產生一個數組包含一個元素 - 數b。因此,除非b是單個數字位數(根據您的描述,不是這樣),則該數組中不能包含任何單個數字的a

只是分裂的第二個數字b到兩位數,爲您a做的,(最多4個比較)的a兩個數字比較的b兩位數。