Rezolvare completă PbInfo #2738 DistLungMax

Cerința

Se dă un șir de caractere care conține cuvinte formate din litere mici ale alfabetului englez și separate printr-un singur spațiu. Să se determine cel mai lung cuvânt care are toate literele distincte. Dacă nu există niciun cuvânt cu toate literele distincte se va afișa -1.

Date de intrare

Programul citește de la tastatură un șir de caractere.

Date de ieșire

Programul va afișa pe ecran cuvântul determinat sau -1, conform cerinței.

Restricții și precizări

  • șirul dat conține maximum 255 de caractere
  • dacă există mai multe cuvinte cu toate literele distincte de lungime maximă se va afișa cel mai din stânga

Exemplu

Intrare

abcabcd abcdef ab

Ieșire

abcdef

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema DistLungMax:

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int ok=0;
    string s,ss;
    getline(cin,s);
    vector<string> v;
    istringstream b(s);
    for(string w;b>>w;)
        v.push_back(w);
    for(int i=0;i<v.size();i++)
    {
        ok=0;
        vector<int> w(300);
        s=v[i];
        for(int j=0;j<s.size();j++)
            if(!w[s[j]])
                w[s[j]]++,ok=1;
            else
            {
                ok=0;
                break;
            }
        if(ok && s.size()>ss.size())
            ss=s;
    }
    if(ss=="")
        cout<<-1;
    else
        cout<<ss;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #2738 DistLungMax

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2738 DistLungMax de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!