fork download
  1. using System;
  2.  
  3. public class Kamus
  4. {
  5. private Dictionary<string, HashSet<string>> kamus = new Dictionary<string, HashSet<string>>();
  6.  
  7. public void Tambah(string kata, string[] sinonim)
  8. {
  9. if (!kamus.ContainsKey(kata))
  10. {
  11. kamus[kata] = new HashSet<string>();
  12. }
  13.  
  14. foreach (string s in sinonim)
  15. {
  16. kamus[kata].Add(s);
  17.  
  18. if (!kamus.ContainsKey(s))
  19. {
  20. kamus[s] = new HashSet<string>();
  21. }
  22.  
  23. kamus[s].Add(kata);
  24. }
  25. }
  26.  
  27. public string[] AmbilSinonim(string kata)
  28. {
  29. return kamus.ContainsKey(kata) ? kamus[kata].ToArray() : null;
  30. }
  31. }
  32.  
  33. public class Test
  34. {
  35. public static void Main()
  36. {
  37. Kamus kamus = new Kamus();
  38.  
  39. kamus.Tambah("big", new string[] { "large", "great" });
  40. kamus.Tambah("big", new string[] { "huge", "fat" });
  41. kamus.Tambah("huge", new string[] { "enormous", "gigantic" });
  42.  
  43. //Hasil = [large, great, huge, fat]
  44. Console.WriteLine("[" + string.Join(", ", kamus.AmbilSinonim("big") ?? new string[0]) + "]");
  45.  
  46. //Hasil = [large, great, huge, fat]
  47. Console.WriteLine("[" + string.Join(", ", kamus.AmbilSinonim("huge") ?? new string[0]) + "]");
  48.  
  49. //Hasil = [huge]
  50. Console.WriteLine("[" + string.Join(", ", kamus.AmbilSinonim("gigantic") ?? new string[0]) + "]");
  51.  
  52. //Hasil = null
  53. Console.WriteLine(kamus.AmbilSinonim("colossal") == null ? "null" : "found");
  54. }
  55. }
  56.  
Success #stdin #stdout 0.06s 31376KB
stdin
Standard input is empty
stdout
[large, great, huge, fat]
[big, enormous, gigantic]
[huge]
null