NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
kopka.simon
Člen
Avatar
kopka.simon:7.6.2015 23:08

Mám zadání vstup string, výstup string
Př: 3X4Y5Z

XXXYYYYZZZZZ

Sepsáno to mám přesně opačně tedy
Př: XXXYYYYZZZZZ

3X4Y5Z
Zde vkládám zmiňovaný kód

 {
            Console.WriteLine("Vitejte v programu ukol1");

            Console.WriteLine("Zadejte cisla: ");

            string zadani = Console.ReadLine();
            Console.WriteLine();
            char[] radek = zadani.ToCharArray();
            char tento = radek[0];
            int p = 1;

            for (int i = 0; i < zadani.Length; i++)
            {
                if (i != zadani.Length - 1)
                {
                    if (tento == radek[i + 1])
                    {
                        p++;
                    }
                    else
                    {
                        Console.Write(p + "" + tento);
                        tento = radek[i + 1];
                        p = 1;
                    }
                }
                else
                {
                    Console.Write(p + "" + tento);
                }
            }
            Console.ReadKey();
        }
    }
}

Věděl by někdo? Děkuji

Editováno 7.6.2015 23:09
 
Odpovědět
7.6.2015 23:08
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na kopka.simon
Jan Vargovský:7.6.2015 23:19

Ahoj, moc ti nerozumím, abych byl upřímný. Potřebuješ aby program převedl format 1A2B na ABB nebo format ABB na format 1A2B?

 
Nahoru Odpovědět
7.6.2015 23:19
Avatar
kopka.simon
Člen
Avatar
Odpovídá na Jan Vargovský
kopka.simon:7.6.2015 23:23

Potřebuji přesně ten první případ tedy formát 1A2B na ABB.

 
Nahoru Odpovědět
7.6.2015 23:23
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na kopka.simon
Jan Vargovský:7.6.2015 23:28

Máš nějaký teoreticky nápad, jak to zrealizovat? Ještě otázka, to číslo je v rozmezí 1 až 9 včetně, nebo to může být i vyšší?

 
Nahoru Odpovědět
7.6.2015 23:28
Avatar
kopka.simon
Člen
Avatar
kopka.simon:7.6.2015 23:36

Teoretický nápad by byl, ale hledám někoho kdo by ho dokázal převést do praxe. Může být i vyšší.

 
Nahoru Odpovědět
7.6.2015 23:36
Avatar
Jan Vargovský
Tvůrce
Avatar
Jan Vargovský:7.6.2015 23:50

Skrz substring:

string zadani = "2X4Y10Z";
int i = 0;
while (i < zadani.Length)
{
    int start = i;
    while (Char.IsDigit(zadani[i])) i++;
    int pocet = int.Parse(zadani.Substring(start, i - start));
    Console.Write(new string(zadani[i++], pocet));
}

Parsování hned:

string zadani = "2X4Y10Z";
int i = 0;
while (i < zadani.Length)
{
    int pocet = zadani[i] - '0';
    while (Char.IsDigit(zadani[++i]))
    {
        pocet *= 10;
        pocet += zadani[i] - '0';
    }
    Console.Write(new string(zadani[i++], pocet));
}
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
7.6.2015 23:50
Avatar
kopka.simon
Člen
Avatar
Odpovídá na Jan Vargovský
kopka.simon:8.6.2015 0:00

Děkuji moc za radu a vyřešení mého problému.

 
Nahoru Odpovědět
8.6.2015 0:00
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na kopka.simon
Jan Vargovský:8.6.2015 17:52

Kdyžtak to označ jako řešení, jestli už nic nemáš :)

 
Nahoru Odpovědět
8.6.2015 17:52
Avatar
kopka.simon
Člen
Avatar
Odpovídá na Jan Vargovský
kopka.simon:8.6.2015 22:44

Už nemám nic. Děkuji :)

 
Nahoru Odpovědět
8.6.2015 22:44
Avatar
coells
Tvůrce
Avatar
Odpovídá na Jan Vargovský
coells:8.6.2015 23:17
:-P
string zadani = "2X4Y10Z";

Console.WriteLine(
    string.Join("", new Regex(@"(\d+)(.)").Matches(zadani).Cast<Match>().
        Select((Match m) => new string(m.Groups[2].Value[0], int.Parse(m.Groups[1].Value)))
    )
);
 
Nahoru Odpovědět
8.6.2015 23:17
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na coells
Jan Vargovský:8.6.2015 23:26
new Regex(@"(\d+)(.)")
    .Matches(zadani)
    .OfType<Match>()
    .ToList()
    .ForEach(m => Console.Write(new string(m.Groups[2].Value[0], int.Parse(m.Groups[1].Value))));

Co tohle? :)

Editováno 8.6.2015 23:26
 
Nahoru Odpovědět
8.6.2015 23:26
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Jan Vargovský:8.6.2015 23:32

Beru z5, to tvoje je lepší :D

 
Nahoru Odpovědět
8.6.2015 23:32
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.