Forum » Programiranje » Sortiranje črk v stringu - C#
Sortiranje črk v stringu - C#

rookie123 ::
Zdravo.
Moram opraviti nalogo, katere del je tudi, da iz stringa sortiram črke glede na to, koliko krat se pojavijo v stringu. Torej v stringu "banana" povedat, da je "a" prvi, drugi "n", "b" pa tretji po pogostosti pojavljanja v stringu. Kako se da to elegantno rešiti? Prosim za nasevet ali par vrstic kode. Hvala!
Moram opraviti nalogo, katere del je tudi, da iz stringa sortiram črke glede na to, koliko krat se pojavijo v stringu. Torej v stringu "banana" povedat, da je "a" prvi, drugi "n", "b" pa tretji po pogostosti pojavljanja v stringu. Kako se da to elegantno rešiti? Prosim za nasevet ali par vrstic kode. Hvala!

Keki ::
Ko besedo prebereš daj beseda.toCharArray() posortiraj po črkah pol pa štej recimo dokler a a++, dokler b b++...
oz najbolše da gledaš kr po ascii kodi dokler 65(A) oz 97(a) a++ in pol maš v tem primeru spremenljivke z vrednostmi 3 2 1.In pol v polje 3 x a pa 2 x n in 1 x b pač na primeru banane. Na začetku še pogledaš kolko maš različnih črk. Nekak tak bi jaz to rešo.
oz najbolše da gledaš kr po ascii kodi dokler 65(A) oz 97(a) a++ in pol maš v tem primeru spremenljivke z vrednostmi 3 2 1.In pol v polje 3 x a pa 2 x n in 1 x b pač na primeru banane. Na začetku še pogledaš kolko maš različnih črk. Nekak tak bi jaz to rešo.
http://www.alfakan.si/
http://mihajerot.si/
http://mihajerot.si/

MaCoFaCo ::
Rešitev z uporabo Linq (potreben C# 3.0 prevajalnik):
using System; using System.Linq; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string beseda = "banana"; var grupirano = from znak in beseda group znak by znak into g select new {Crka = g.Key, Stevilo = g.Count()} ; var sortirano = from grupa in grupirano orderby grupa.Stevilo descending select grupa; foreach (var grupa in sortirano) { Console.WriteLine(string.Format("Črka {0}: {1}", grupa.Crka, grupa.Stevilo)); } } } }

rookie123 ::
Sem naredil tako, da sem ustavril 2D tabelo tipa int, potem pa sem pisal notri t[0,0] = 97 , t[0,1] = 0;
In tako za vse male crke. Prvi stolpec je mala crka v ascii, drugi pa število ponavljan v nizu. Potem pač grem čez niz, in primerjam prvi stoplec recimo t[10,0] == niz[i] in ustrezno povečujem vrednost v drugem stolpcu. Nato tabelo sortiram po drugem stolpcu. To je to. Hvala vseeno.
In tako za vse male crke. Prvi stolpec je mala crka v ascii, drugi pa število ponavljan v nizu. Potem pač grem čez niz, in primerjam prvi stoplec recimo t[10,0] == niz[i] in ustrezno povečujem vrednost v drugem stolpcu. Nato tabelo sortiram po drugem stolpcu. To je to. Hvala vseeno.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [c#] Majhen problemčekOddelek: Programiranje | 1042 (850) | darkolord |
» | Nemorem rešit ene naloge z c++ (sem začetnik) (strani: 1 2 )Oddelek: Programiranje | 10547 (6285) | technolog |
» | C# tabelaOddelek: Programiranje | 1036 (888) | Mitja Bonča |
» | branje iz datoteke c#Oddelek: Programiranje | 1665 (1394) | darkolord |
» | c# težava delo z niziOddelek: Programiranje | 1557 (1408) | Tutankhamun |