UVA Online Judge solution 508 – Morse Mismatches – Solution in C++ – Volume 5

UVA Online Judge Solution  508 – Morse Mismatches  | Volume 5
UVA Problem Link – https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=7&page=show_problem&problem=449

Problem Name:  508 – Morse Mismatches  solution
Problem Number : UVA –  508 – Morse Mismatches  solution
Online Judge : UVA Online Judge Solution
Volume: 5
Solution Language : C plus plus

UVA Online Judge Solution, UVA OJ Solution list, UVA Problems Solution, UVA solver, UVA all problem solution list

UVA Solution  508 – Morse Mismatches Code in CPP:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <algorithm>
#include <vector>
#include <queue>
#include <map>
#include <set>
#include <iostream>
#include <sstream>
using namespace std;

map<string, string> morse;
map<string, string> dict;
int
dist(string s1, string s2) {
if
(s1 == s2) return 0;
if
(s1.length() > s2.length())
swap(s1, s2);
if
(s1 != s2.substr(0, s1.length())) return 0x3f3f3f3f;
return
(int) (s2.length() - s1.length());
}

string encode(string s) {
string ret = "";
for
(int i = 0; i < s.length(); i++)
ret += morse[string(1, s[i])];
return
ret;
}

string decode(string s) {
string ret = dict.begin()->first;
int
mn = 0x3f3f3f3f;
for
(map<string, string>::iterator it = dict.begin();
it != dict.end(); it++) {
int
d = dist(it->second, s);
if
(d < mn) {
mn = d, ret = it->first;
}
else if (d == mn && d == 0 && *ret.rbegin() != '!') {
ret += "!";
}
}

if
(mn)
ret += "?";
return
ret;
}

int
main() {
string s1, s2;
while
(cin >> s1 && s1 != "*") {
cin >> s2;
morse[s1] = s2;
}

while
(cin >> s1 && s1 != "*")
dict[s1] = encode(s1);
while
(cin >> s1 && s1 != "*")
cout << decode(s1) << endl;
return
0;
}

Tags: UVA Online Judge Solution, UVA OJ Solution list, UVA Problems Solution, UVA solver, UVA all problem solution list, UVA code in C, UVA code in C++, UVA solution in C, UVA solution, UVA OJ problems solution, UVA solution, UVA online judge codes, UVA problem  508 – Morse Mismatches solution, UVA Solution in C, UVA  508 – Morse Mismatches  solution in C++, UVA   508 – Morse Mismatches solution in java

By Maniruzzaman Akash

Maniruzzaman Akash is a freelance web developer with most popular Laravel PHP frameork and Vue JS

Leave a Reply

Your email address will not be published. Required fields are marked *