Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Alfabet Morsea - SPOJ

Ostatnio zmodyfikowano 2020-12-22 10:38
Autor Wiadomość
Temat założony przez niniejszego użytkownika
Alfabet Morsea - SPOJ
» 2020-12-21 21:46:20
Mistrzowie programowania rzućcie okiem co jest nie tak.
SPOJ nie akceptuje mi rozwiązania:
iś wajs nicht co jest nie tak?



 
C/C++
#include <iostream>
#include <algorithm>
#include <map>
#include <locale>

using namespace std;

map < char, string > codeMorsea;
map < char, string >::iterator iter;

void setMap() {
   
codeMorsea[ 'a' ] = ".-";
   
codeMorsea[ 'b' ] = "-...";
   
codeMorsea[ 'c' ] = "-.-.";
   
codeMorsea[ 'd' ] = "-..";
   
codeMorsea[ 'e' ] = ".";
   
codeMorsea[ 'f' ] = ".-..";
   
codeMorsea[ 'g' ] = "--.";
   
codeMorsea[ 'h' ] = "....";
   
codeMorsea[ 'i' ] = "..";
   
codeMorsea[ 'j' ] = ".---";
   
codeMorsea[ 'k' ] = "-.-";
   
codeMorsea[ 'l' ] = "..-.";
   
codeMorsea[ 'm' ] = "--";
   
codeMorsea[ 'n' ] = "-.";
   
codeMorsea[ 'o' ] = "---";
   
codeMorsea[ 'p' ] = ".--.";
   
codeMorsea[ 'q' ] = "--.-";
   
codeMorsea[ 'r' ] = ".-.";
   
codeMorsea[ 's' ] = "...";
   
codeMorsea[ 't' ] = "-";
   
codeMorsea[ 'u' ] = "..-";
   
codeMorsea[ 'v' ] = "...-";
   
codeMorsea[ 'w' ] = ".--";
   
codeMorsea[ 'x' ] = "-..-";
   
codeMorsea[ 'y' ] = "-.--";
   
codeMorsea[ 'z' ] = "--..";
   
codeMorsea[ ' ' ] = " ";
}

string convertLettersToLowercase( string str ) {
   
locale loc;
   
string outcome;
   
for( string::size_type i = 0; i < str.size(); ++i )
       
 outcome += tolower( str[ i ], loc );
   
   
return outcome;
}

string encode( string textToEncode ) {
   
char slash = '/';
   
string result;
   
int textLength = textToEncode.size();
   
for( int i = 0; i < textLength; i++ ) {
       
map < char, string >::iterator iter = codeMorsea.find( textToEncode[ i ] );
       
if( iter != codeMorsea.end() ) result += iter->second + slash;
       
   
}
   
return result;
}

int main() {
   
   
string line;
   
   
setMap();
   
   
while( getline( cin, line ) ) {
       
string afterChange = convertLettersToLowercase( line );
       
cout << encode( afterChange ) << endl;
   
}
   
   
return 0;
}
.
P-177868
» 2020-12-21 22:04:02
W zadaniu jest napisane, że
spację zamieniamy na pojedynczy znak /.
tego nie robisz
//edit
C/C++
codeMorsea[ ' ' ] = " ";
//zmien na
codeMorsea[ ' ' ] = "";
P-177869
Temat założony przez niniejszego użytkownika
» 2020-12-21 22:13:14
Dalej SPOJ nie akceptuje..
Dziękuję serdecznie !!
Będę szukał dalej ..
pzdr
P-177870
» 2020-12-21 23:03:04
A teraz dostajesz poprawny wynik dla przykładowych danych?
P-177871
Temat założony przez niniejszego użytkownika
» 2020-12-22 10:38:51
Tak! Bardzo dziękuję !
Satysfakcja !

Tak jak zaproponował: nanoant20



P-177872
« 1 »
  Strona 1 z 1