7-1 重復資料問題-hebust (10分)
在一大堆資料中找出重復的是一件經常要做的事情,現在要處理許多整數,在這些整數中,可能存在重復的資料, 你要寫一個程式來做這件事情,讀入資料,檢查是否有重復的資料,如果有,輸出“yes”這三個字母;如果沒有,則輸出“no”,
輸入格式:
程式會讀到n個整數的字串【1<=n<=10000】,以空格分開,這些整數的范圍是[1,10000],
輸出格式:
如果這些整數中存在重復的,就輸出: yes
否則,就輸出: no
輸入樣例:
在這里給出一組輸入,例如:
1 2 3 1 4
輸出樣例:
在這里給出相應的輸出,例如:
yes
思路:
①將要輸入的數字一次性全部輸出到一個字串中,然后將這個字串以空格為標志進行分割,將輸入的數字一個一個的存入到一個字串陣列中,
②再將字串中的元素轉換為數字存入到set集合中,使用set集合中無重復元素的特點來存盤輸入的數字,
③最后判斷set集合的長度,如果set集合的長度小于輸入數字的個數則說明有重復元素,如果set集合的長度等于輸入數字的個數則說明無重復元素,
import java.util.HashSet; import java.util.Scanner; import java.util.Set; public class Main{ public static void main(String[] args){ Set<Integer> set = new HashSet<Integer>(); // 集合set中無重復元素 Scanner scanner = new Scanner(System.in); String str = new String(); // 使用一個str來接受輸入的一串數字 int count = 0; str = scanner.nextLine(); String[] strs = str.split(" "); // 將str字串以空格為標志把str字串中的數字一個一個的取出來 for(int i = 0; i < strs.length; i++) { set.add(Integer.parseInt(strs[i])); // 將字串陣列strs里的各個元素轉換為數字存入到set集合中 count++; // 統計輸入的數字個數 } if(set.size() == count) { // 如果set集合的長度和輸入的數字個數相等則說明輸入的數字中沒有重復數字 System.out.println("no"); }else { // 如果set集合的長度小于輸入的數字個數,則說明輸入的這組數字中存在重復元素 System.out.println("yes"); } } }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/194390.html
標籤:Java
