Advertisement
dzocesrce

[APS] Kumanovë Dialect

Aug 30th, 2023
499
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.37 KB | None | 0 0
  1. //nema pokancer dijalekt though haha
  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5.  
  6. class MapEntry<K extends Comparable<K>,E> implements Comparable<K> {
  7.  
  8.     // Each MapEntry object is a pair consisting of a key (a Comparable
  9.     // object) and a value (an arbitrary object).
  10.     K key;
  11.     E value;
  12.  
  13.     public MapEntry (K key, E val) {
  14.         this.key = key;
  15.         this.value = val;
  16.     }
  17.  
  18.     public int compareTo (K that) {
  19.         // Compare this map entry to that map entry.
  20.         @SuppressWarnings("unchecked")
  21.         MapEntry<K,E> other = (MapEntry<K,E>) that;
  22.         return this.key.compareTo(other.key);
  23.     }
  24.  
  25.     public String toString () {
  26.         return "<" + key + "," + value + ">";
  27.     }
  28. }
  29.  
  30. class SLLNode<E> {
  31.     protected E element;
  32.     protected SLLNode<E> succ;
  33.  
  34.     public SLLNode(E elem, SLLNode<E> succ) {
  35.         this.element = elem;
  36.         this.succ = succ;
  37.     }
  38.  
  39.     @Override
  40.     public String toString() {
  41.         return element.toString();
  42.     }
  43. }
  44.  
  45. class CBHT<K extends Comparable<K>, E> {
  46.  
  47.     // An object of class CBHT is a closed-bucket hash table, containing
  48.     // entries of class MapEntry.
  49.     private SLLNode<MapEntry<K,E>>[] buckets;
  50.  
  51.     @SuppressWarnings("unchecked")
  52.     public CBHT(int m) {
  53.         // Construct an empty CBHT with m buckets.
  54.         buckets = (SLLNode<MapEntry<K,E>>[]) new SLLNode[m];
  55.     }
  56.  
  57.     private int hash(K key) {
  58.         // Napishete ja vie HASH FUNKCIJATA
  59.         return Math.abs(hashCode()) % buckets.length;
  60.     }
  61.  
  62.     public SLLNode<MapEntry<K,E>> search(K targetKey) {
  63.         // Find which if any node of this CBHT contains an entry whose key is
  64.         // equal
  65.         // to targetKey. Return a link to that node (or null if there is none).
  66.         int b = hash(targetKey);
  67.         for (SLLNode<MapEntry<K,E>> curr = buckets[b]; curr != null; curr = curr.succ) {
  68.             if (targetKey.equals(((MapEntry<K, E>) curr.element).key))
  69.                 return curr;
  70.         }
  71.         return null;
  72.     }
  73.  
  74.     public void insert(K key, E val) {      // Insert the entry <key, val> into this CBHT.
  75.         MapEntry<K, E> newEntry = new MapEntry<K, E>(key, val);
  76.         int b = hash(key);
  77.         for (SLLNode<MapEntry<K,E>> curr = buckets[b]; curr != null; curr = curr.succ) {
  78.             if (key.equals(((MapEntry<K, E>) curr.element).key)) {
  79.                 // Make newEntry replace the existing entry ...
  80.                 curr.element = newEntry;
  81.                 return;
  82.             }
  83.         }
  84.         // Insert newEntry at the front of the 1WLL in bucket b ...
  85.         buckets[b] = new SLLNode<MapEntry<K,E>>(newEntry, buckets[b]);
  86.     }
  87.  
  88.     public void delete(K key) {
  89.         // Delete the entry (if any) whose key is equal to key from this CBHT.
  90.         int b = hash(key);
  91.         for (SLLNode<MapEntry<K,E>> pred = null, curr = buckets[b]; curr != null; pred = curr, curr = curr.succ) {
  92.             if (key.equals(((MapEntry<K,E>) curr.element).key)) {
  93.                 if (pred == null)
  94.                     buckets[b] = curr.succ;
  95.                 else
  96.                     pred.succ = curr.succ;
  97.                 return;
  98.             }
  99.         }
  100.     }
  101.  
  102.     public String toString() {
  103.         String temp = "";
  104.         for (int i = 0; i < buckets.length; i++) {
  105.             temp += i + ":";
  106.             for (SLLNode<MapEntry<K,E>> curr = buckets[i]; curr != null; curr = curr.succ) {
  107.                 temp += curr.element.toString() + " ";
  108.             }
  109.             temp += "\n";
  110.         }
  111.         return temp;
  112.     }
  113.  
  114. }
  115.  
  116. public class KumanovskiDijalekt {
  117.     public static void main (String[] args) throws IOException {
  118.  
  119.         BufferedReader br = new BufferedReader(new InputStreamReader(
  120.                 System.in));
  121.         int N = Integer.parseInt(br.readLine());
  122.         CBHT<String,String> kumanovski_makedonski= new CBHT<>(399);
  123.         String rechnik[]=new String[N];
  124.         for(int i=0;i<N;i++){
  125.             rechnik[i]=br.readLine();
  126.             String[] zbor= rechnik[i].split("\\s+");
  127.             kumanovski_makedonski.insert(zbor[0],zbor[1]);
  128.         }
  129.  
  130.         String tekst=br.readLine();
  131.         String[] zborovi= tekst.split("\\s+");
  132.         //Vasiot kod tuka
  133.         StringBuilder sb= new StringBuilder();
  134.         for(int i=0;i<zborovi.length;i++){
  135.             String zbor_bez_znak;
  136.             Character znak='$';
  137.             if(zborovi[i].charAt(zborovi[i].length()-1)=='.'||
  138.                     zborovi[i].charAt(zborovi[i].length()-1)=='!'||
  139.                     zborovi[i].charAt(zborovi[i].length()-1)=='?'||
  140.                     zborovi[i].charAt(zborovi[i].length()-1)==','){
  141.                     zbor_bez_znak=zborovi[i].substring(0,zborovi[i].length()-1).toLowerCase();
  142.                     znak= zborovi[i].charAt(zborovi[i].length()-1);
  143.             }
  144.             else{
  145.                 zbor_bez_znak=zborovi[i].toLowerCase();
  146.             }
  147.             if(kumanovski_makedonski.search(zbor_bez_znak)!=null){
  148.                 String prevod= kumanovski_makedonski.search(zbor_bez_znak).element.value;
  149.                 if(Character.isUpperCase(zborovi[i].charAt(0))) prevod= prevod.substring(0,1).toUpperCase()+prevod.substring(1);
  150.                 if(znak!='$') sb.append(prevod).append(znak).append(" ");
  151.                 else sb.append(prevod).append(" ");
  152.             }
  153.             else{
  154.                 sb.append(zborovi[i]).append(" ");
  155.             }
  156.         }
  157.         System.out.println(sb);
  158.     }
  159. }
  160. /*
  161. 20
  162. nego otkolku
  163. pesmu pesna
  164. bija bil
  165. u vo
  166. s’s so
  167. zhenu zhena
  168. ubavu ubava
  169. sakaja sakal
  170. ednu edna
  171. poznatu poznata
  172. pesmu pesna
  173. umreja umrel
  174. sliku slika
  175. zelje zelbi
  176. rakiju rakija
  177. ede jade
  178. skup skap
  179. chasku chaska
  180. povishke povekje
  181. narodnu narodna
  182. Batko Gjorgjija e tipichna figura i karakter od Kumanovo, koj bija golem majtapdzija i boem i koj povishke sakaja kjef da tera nego da raboti. U ednu poznatu narodnu pesmu vika se deka umreja s’s tri zelje za ubavu zhenu, za chasku rakiju i za skup pajton.
  183. -----------------------------------------------------------------------------------------------------------------------
  184. Batko Gjorgjija e tipichna figura i karakter od Kumanovo, koj bil golem majtapdzija i boem i koj povekje sakal kjef da tera otkolku da raboti. Vo edna poznata narodna pesna vika se deka umrel so tri zelbi za ubava zhena, za chaska rakija i za skap pajton.
  185. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement