[HackerRank]Java的HashSet(Java Hashset)


題目描述

{1,2,3}是一個Set,但{1,2,2}不是。今天您將會學到如何使用Java的Set來解決問題。

您將會得到n個成對的字串。若a=c、b=d,則這兩對字串(a,b)和(c,d)是相同的。成對的字串有先後順序,所以(a,b)和(b,a)是不相同的。在將所有的成對字串輸入完之後,您必須輸出成對字串的不重複數量。

原題網址

https://www.hackerrank.com/challenges/java-hashset

輸入格式

第一行為一個整數T,表是成對字串的數量,範圍在1到100000之間(包含1和100000)。接下來的T行為一組成對字串,包含兩個字串,用空格分隔,每個字串的長度最多為5個字元,且都為小寫英文字母組成。

輸出格式

輸出T行,在第i行中,輸出您在處理第i個的成對字串後,目前算出的不重複成對字串數量。

範例輸入

5
john tom
john mary
john tom
mary anna
mary anna

範例輸出

1
2
2
3
3

額外解釋

處理完第1個成對字串後,目前有的不重複成對字串為:(john,tom),共1個。
處理完第2個成對字串後,目前有的不重複成對字串為:(john,tom)、(john, mary),共2個。
處理完第3個成對字串後,目前有的不重複成對字串為:(john,tom)、(john, mary),共2個,無變化。
處理完第4個成對字串後,目前有的不重複成對字串為:(john,tom)、(john, mary)、(mary, anna),共3個。
處理完第5個成對字串後,目前有的不重複成對字串為:(john,tom)、(john, mary)、(mary, anna),共3個,無變化。

解題概念

將成對字串「a b」以「a,b」的形式存入HashSet集合結構中,HashSet是一種Set,因此存在HashSet中的元素不會重複。

參考答案

關於作者

Magic Len

各位好,我是Magic Len,是這網站的管理員。我是台灣台中大肚山上人,畢業於台中高工資訊科和台灣科技大學資訊工程系,曾在桃機航警局服役。我熱愛自然也熱愛科學,喜歡和別人分享自己的知識與經驗。如果你有興趣認識我,可以加我的Facebook,並且請註明是從MagicLen來的。

相關文章