Wyświetlanie podłańcuchów w ciągu bitów

0

Witam.
Mam takie zadanie: Załóżmy że mamy ciąg bitów: 01010101110, który znajduje się w pliku. Muszę napisać algorytm który przejdzie przez wszystkie podłańcuchy i je wyświetli. Niestety trochę już nad tym siędzę i nie wiem jak to napisać. Oto mój kod:

 
string substring = "";
string filename = "dane.txt";
using (StreamReader sr = new StreamReader(filename))
{
    string bitstream = sr.ReadLine();
    Console.WriteLine(bitstream + "\n");
    for (int i = 0; i < bitstream.Length - 1; i++)
    {
        for (int d = bitstream.Length - 1; d >= 0; d--)
        {
            for (int j = i; j < d; j++)
            {
                substring += bitstream[j];
            }
            Console.WriteLine(substring);
        }
    }
}

Proszę o pomoc.

0

Co to jest "podłańcuch"?

0

Innymi słowy podciąg bitów. Np w ciągu 01010101110 podciągiem może być 01010101110 o długości 5.

0

Mają być unikalne czy nie?
np podciąg "0" ma się pojawić raz czy 5 razy?

0

Nie muszą :)

0

Ale mogą?
Jeżeli mogą się powtarzać to kod jest znacznie krótszy.
Jeżeli nie mogą się powtarzać to trywialny algorytm ma zbyt duży koszt.

0

Mogę się powtarzać. Mam ukazać jakby najprostszy algorytm naiwny do takiej operacji.

0

Który z dwóch powyższych?

0

Po prostu mam wyświetlać po kolei wszystkie podciągi bitów w danym ciągu i mogą się one powtarzać.

0
  using (StreamReader sr = new StreamReader(filename))
                {
                    string bitstream = sr.ReadLine();
                    Console.WriteLine(bitstream + "\n");
                    for (int i = 0; i < bitstream.Length - 1; i++)
                    {
                        for (int d = 0; d < bitstream.Length - i ;++d)
                        {
                           
                            Console.WriteLine(bitstream.Substring(i,d));
                        }
                    }
                }
 

??

0

Dzięki. Właściwie choć nie pisałem to miałem nie używać funkcji Substring, ale mimo to poradziłem sobie z tym w trzech pętlach.

1 użytkowników online, w tym zalogowanych: 0, gości: 1