Ezt hogyan lehetne megoldani? (logika2. 0)?
szóval van egy 0/1-ből álló sorozat a progi minden gombnyomásra a hozzáad a sorozathoz 0/1-et
1-es példa sorozat: "011010111010101"
2-es példa sorozat: "011001011001110"
3-es példa sorozat: "011000111010111"
4-es példa sorozat: "011000000110110"
szóval a progi eredményként 0-át vagy 1-et ad vissza ezt úgy dönti el,hogy az utolsó elemtől visszafelé vizsgálódik.
Utolsó kettő sorozatot keresi méghozzá A vagy B sorozatot
Az A típusu sorozat az az egymás után következő ugyanolyan szám tehát "000" vagy "11" vagy simán "0"
A B típusu a váltakozó sorozat tehát "10" vagy "01010"
a sorozatoknak vannak értékei az A típusnál egyszerűen az érték=az elemszámmal ha "0" akkor értéke:1 ha pl. "111" értéke:3 lessz.
A B típusu sorozatnál az érték=(az elemszám-1)el tehát "0101"nek 3-lessz "01"-nek pedig 1.
Fontos:A sorozatokA vagy B nem kötelező annak lenniük aminek látszanak "00000"ez egy 5ös értékű Atipusu sorozat de lebontható úgy,hogy 2darab megegyező A típusu sorozat legyen az utolsó kettő "0-00-00" 2-2es értékekkel.
B típusnál ez "010101"-ben "010-101"lenne 2-2es értékkel
A lényeg,hogy a program megkeresse az utolsó kettő lehető legnagyobb és egyforma értékkel rendelkező sorozatot mindegy,hogy A-A B-B A-B B-A.
Az első példasorozatban ezt tenné a progi:
az első tipus az utolsó sorozat a példasorozatban a második az utolsó előtti.)
A-Abevizsgálás=("1")érték:1-("0")érték:1->nem kuka mivel megegyező a két érték 1és1
A-Bbevizsgálás=("1")érték:1-("010101")érték:5->kuka
B-Abevizsgálás=("1010101")érték:6-("11")érték:2->kuka
mivel a BA bevizsgálás-ban a Btípus lebontható ezért próbálja úgy lebontani a progi,hogy lehetőleg ugyanolyan értékű legyen a B és A is mivel az A bevizsgálás elemei 1-esek pontosabban 2db ezért a B bevizsgálás első elemét hozzálehetne fűzni az Autolsó-hoz így lenne:010101-111érték:5-3-->szóval kuka
B-Bbevizsgálás=("1010101")érték:6-(ilyen lebontás nélkül nem lehetséges mivel az első bevizsgálás előtt 2db 1es van a sorozatban az pedig már az B-A bevizsgálásban megvolt) szóval a B-Bbevizsgálás/első bevizsgálás lebontása:"1010101" úgy próbálja meg lebontani,hogy megegyező legyen a két érték:1010-101érték:3-2 de ugye az ilyen eseteket lebontani sem kell mivel az elemszáma páros és B sorozat értéke=elemszám-1 ez páratlan ami nem osztható 2-vel így nem lehet ugyanolyan érték. huh valaki aki érti az válaszoljon,mert nagyon kellene a segítség akkor leírom a továbbit,hogy mi alapján dönt az outputról.
Ha elmeséled, hogy ez mihez kell, vagy, hogy miért akarsz random egyeseket kisorsolgatni az előzmények alapján, akkor esetleg tovább olvasom a felénél...
És először is tagols a szöveget, és használj olyan szövegelemeket, mint pl. a Nagybetűs kezdés, a . a mondat végén, meg amúgy whitespaceknek is örülnénk.
Én azt javaslom, nézz utána a reguláris kifejezéseknek. :) Azok alapértelmezetten a lehető leghosszabb illeszkedést veszik eredményül.
Mivel hátulról kell vizsgálni, én azt csinálnám, hogy simán megfordítanám a string-et.
Az A típusú sorozat reg.kif.-el így néz ki: (0+|1+)
A B típusú meg így: ((01)+|(10)+)
Az A-B vizsgálathoz egymás mögé rakod ezt a 2 mintát, és ráilleszted a szövegre. Ki fogja adni eredményül az illesztett részt. Le tudod kérdezni az egyes zárójelezett részeket is belőle, és tovább vizsgálhatod (hossz számításához például). :)
Többi típusnál is hasonlóan csak egymás mögé rakod a két regexp-et amit írtam.
#2 vagyok, korrigálok:
A típus: (0{2,}|1{2,})
(Így nem fog illeszteni az 1 karakter hosszúakra.
És itt egy példa A-B típusra:
regexr PONT com/399rf
(Nem csak a szöveg elején talált, de neked elég lesz az első találatot feldolgozni.)
Ja, hogy ez nem segített túl sokat? Szerintem pont az oroszlánrészét megoldja a feladatodnak.
Prognyelvet nem írtál, de ha írtál is volna, akkor is csak azt mondanám, Google: "PROGRAMNYELV regular expressions"
Nehogymár az implementálást is én csináljam... :)
Megköszönném, ha adnál egy Ferrarit.
A helyzet az, hogy mait írsz, annak semmi értelme, és még csak nem is értesz hozzá. Kezdem azt gondolni, hogy nem is érted, mit akarsz. Mármint abból, ahogy leírod.
Tudod, ha valamit nem tudsz egyszerűen megfogalmazni, azt nem is érted igazán.
#2-3-6 vagyok
#8: Na igen. :)
Nos, "az a nagy helyzet, hogy" mivel nem állásajánlatként tetted ki a feladatot (valamely másik, erre szakosodott oldalon), hanem ide, a Programozás kategóriába, én úgy gondolom, hogy te programozni akarsz, és nem megoldást, hanem segítséget kérsz a feladathoz.
Ha programozni akarsz, akkor programozz. Ne állj meg minden egyes lépésnél, hogy "de én ezt nem tudom!", mert így soha a büdös életben nem leszel kész sem ezzel a programmal, sem semmi mással az ÉLETben. Ha valamit meg akarsz csinálni, de elakadtál, akkor járj utána, mi a következő lépés. Google jóbarát.
A kezdőlökést megadtam, megmutattam egy utat, amin elindulhatsz. Indulj el rajta. Kaptál angol, és magyar keresőkifejezést is hozzá. :)
Sőt: voltam olyan jófej, hogy még a regexpet is összeraktam helyetted, tehát nem kell megtanulnod a regexpek nyelvét, csak használnod kell, amit adtam.
Ha meg képtelen/lusta vagy rá, és/vagy neked csak az eredmény kell, akkor pedig keress valakit (nem engem), aki elvállalja a melót, és fizesd meg a munkadíját.
(Ez most nem lebacás akar lenni, tanácsnak szántam.)
További kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!