《內蒙古自治區第十三屆大學生程序設計競賽試題_H 公孫玉龍》
阿新 • • 發佈:2019-04-26
導入 href public print header 整數 pro true code
現在有若幹個賦值語句,每個賦值語句由a和b組成。變量名僅由小寫和大寫字母組成,已知a是一個變量名。整數對象為長度不超過100的整數。如果b是一個整數對象,那麽表示bb整數對象被a所引用。如果b是一個變量名,那麽表示a引用b所引用的整數對象,並且保證b變最在之前已被賦值。
如果一個數對象沒有被任何一個變量所可用,則該整數對象被系統回收。如果兩個整數對象的值相同,則它們是同一個整數對象。請你輸出最終有多少個整數對象沒有被回收。
對於每一組數據,輸出最終有多少個整數對象沒有被回收。
這個題有點小坑,最坑的地方就是 輸入的b 變量 有可能 是 負數 ! 負數 ! 負數! 對 ,你沒有看錯,就是負數,坑死我了,
一直都是 content.charAt(0) 判斷是不是 數字 如果不是數據就是負數,但是!!!! -號 也是數字啊,然後就一直卡在這裏,剩下的思路就簡單了
問題 H: 公孫玉龍
內存限制:128 MB時間限制:1 S標準輸入輸出 題目類型:傳統評測方式:文本比較上傳者:外部導入 提交:88通過:22 返回比賽 提交 提交記錄題目描述
公孫玉龍創造了一門動態類型編程語言,他想出了一種垃圾回收的方式。如果一個數對象沒有被任何一個變量所可用,則該整數對象被系統回收。如果兩個整數對象的值相同,則它們是同一個整數對象。請你輸出最終有多少個整數對象沒有被回收。
輸入格式
第一行包含一個正整數T(1≤T<100)代表測試數據組數。每一組數據第一行為一個正整數n(1≤n≤100),接下來n行每行由a,b組成,表示將b賦值給a,其中a為變量名,b為變量名或一個整數對象,1≤|a|,|b|≤100。輸出格式
輸入樣例 復制
2
3
TNT 2
SNS 3
BNB 3
5
T 2
N 2
T N
S 3
B 3
輸出樣例 復制
2
2
分類標簽
思路:
使用一個Map<String ,String> 用來描述 變量之間的賦值關系
1.首先判斷 b 是一個數字 還是一個字符串
1.1 如果是數字 map.put(a,b)
1.2 如果是一個變量 map.put(a,map.get(b))
2.然後遍歷 將map 中的數據循環加入 set中 ,使用set 自動去重復。
最後上Java 代碼實現
1 import java.util.HashMap; 2 import java.util.HashSet; 3 import java.util.Map; 4 import java.util.Scanner; 5 import java.util.Set; 6 7 public class Main { 8 9 public static boolean isNumber(String content) 10 { 11 for(int i=0; i<content.length(); i++) 12 { 13 if( content.charAt(i) == ‘-‘ && i==0 ) 14 { 15 continue; 16 } 17 else if( content.charAt(i)>‘9‘ || content.charAt(i)< ‘0‘ ) 18 { 19 return false; 20 } 21 } 22 return true; 23 } 24 public static void main(String[] args) { 25 Scanner cin = new Scanner (System.in); 26 Map<String, String> map = new HashMap<>(); 27 Set<String> set = new HashSet<>(); 28 29 int t = cin.nextInt(); 30 for(int count = 0;count<t;count++){ 31 map.clear(); 32 set.clear(); 33 int n = cin.nextInt(); 34 for(int i = 0;i<n;i++){ 35 String a = cin.next(); 36 String b = cin.next(); 37 38 if(isNumber(b)){ 39 map.put(a,b); 40 }else{ 41 map.put(a,map.get(b)); 42 } 43 } 44 45 for (String key :map.keySet()) { 46 set.add(map.get(key)); 47 } 48 49 System.out.println(set.size()); 50 } 51 52 53 } 54 55 }
《內蒙古自治區第十三屆大學生程序設計競賽試題_H 公孫玉龍》