Kezdőoldal » Tudományok » Egyéb kérdések » Hány substring-je van egy...

Hány substring-je van egy string-nek?

Figyelt kérdés

A kérdés vonatkozik arra, hogy úgy mennyi van ahol az egyezőeket beleszámítjuk annyiszor ahányszor előfordul. Úgy is hogy hány különböző van.

Tudjuk ha a kérdés arra vonatkozik hogy hány különbőző van, az string függő, ha egyezőket beleszámítjuk akkor csupán a hossz függvénye.

A kérdés arra vonatkozik hogy lehet gyorsabban kiszámolni annál, hogy legeneráljuk az összes substring-jét.

Példák az összes substring legenerálással : [link]


"1. asdasd [0..6] 6"

Az "1." jelenti azt hogy hanyadik sorszámú a substring legenerálás közben. Utána következik az adott substring azaz "asdasd" (önmagának is substring-je egy string) , utána következik az index tartomány hogy mettől meddig tart az adott substing az eredetiben ez esetben ez [0..6] ez után következik az adott substing hossza ami itt 6 .

A példák melyekre végig van számítva brute force-al : asdasd , aaa, abaa, abcde, xxxxxx .



2022. nov. 3. 18:36
 1/5 A kérdező kommentje:

Nem tudom javítani ott.

Javítás : [link]

Még megjegyzés hogy az indextartomány alulról zárt fentről nyitott, azaz [0..6]-ban a 0.-ik indexű az alja, a teteje az 5.-ik indexű.

2022. nov. 3. 18:48
 2/5 anonim válasza:
ha n=string hosszúsága akkor (n(n-1))/2
2022. nov. 3. 20:01
Hasznos számodra ez a válasz?
 3/5 A kérdező kommentje:

"ha n=string hosszúsága akkor (n(n-1))/2"


Egyszerűség kedvéért vegyük azt az esetet ahol minden substing különböző az indextartományok függvényében.


Tönkrevágja a gyk a formázást ezért nem közvetlen ide írom a példákat.

n=3

(n*(n-1))/2 = 3

"abc" esetében : [link]

Nem stimmel.


n=4

(n*(n-1))/2 = 6

"abcd" esetében : [link]

Nem stimmel.


n=1 esetében (n*(n-1))/2 = 0, triviális hogy a jó válasz az 1 lenne.


Rájöttem hogy (n+1)*n/2 esetében stimmel.


Már csak a nehezebb része van hátra a kérdésemnek.

2022. nov. 3. 20:33
 4/5 anonim ***** válasza:

Az egyedi substringek számát meg lehet állapítani lineáris időben: [link]

Ha ki is akarod írni őket, akkor az nyilván inputfüggő lesz O(n^2) worst case komplexitással, hiszen nem tudod megúszni annál kevesebb lépésből, mint ahány egyedi substring van benne, ami akár n(n+1)/2 is lehet.

2022. nov. 4. 09:27
Hasznos számodra ez a válasz?
 5/5 A kérdező kommentje:
Jó bonyolult, köszönöm a választ.
2022. nov. 4. 15:27

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!