Kezdőoldal » Számítástechnika » Programozás » Lenne olyan vállalkozó szellem...

Lenne olyan vállalkozó szellemű lélek, aki segítene eme algoritmusos-programozós feladatban?

Figyelt kérdés

Java nyelvben próbálkoztam a megoldással, de a probléma jellegéből adódóan ez nem fontos. A probléma (feladat) az volna, hogy van egy függvényünknek egy String és egy int típusú paramétere.

A String (továbbiakban 's' változó) + és - jelekből állhat csak, tehát pl. s = "+-+--"; Az int -et később írom, hogy micsoda. Tehát van a fenti "s" sztringünk, a "+-+--". Ezt egységekre kell bontanunk, a legutolsó karaktertől elkezdve és utána mindig egy előtte lévő karaktert hozzáadva, képződnek az egységek, és maga a teljes sztring is egy egység; tehát ezek lesznek az egységek: "-" , "--" , "+--" , "-+--" , "+-+--" , összesen tehát 5 egység ennél a példánál (sztring-nél). És minden egységnél meg lehet határozni azt a számértéket, amit a + és - jelek "összeadása" eredményez. A + jel ugye +1 -et, a - jel -1 -et képvisel, így a fenti egységek eme bizonyos számértékei ezek lesznek: "-" -nál -1 lesz, "--" -nál (-1) + (-1) = -2, "+--" -nál (+1) + (-1) + (-1) = -1, és így tovább rendre a hátralévők: -2, -1.

Tehát látjuk, hogy az egységek eme fajta számértéke lehet pozitív és negatív szám is (a példánkban ugye csak negatív, de lehetne pozitív is). És itt jön képbe a bemenő paraméterként megadott int típus (továbbiakban "k" változó), mert ez adja meg, hogy hány db negatív előjelű egységnek kell szerepelnie az "s" sztringben. A fenti példában ugye mind az 5 egység negatív előjelű, ezért 5 db negatív előjelű egységünk van, de ha a "k" paraméter mondjuk 3 lenne, akkor úgy kéne átalakítani az "s" változót, hogy abban az egységek közül tényleg csak 3 db legyen negatív előjelű, a többi pozitív legyen. Ehhez tehát át kell alakítanunk a fenti "s" sztringet. Tetszőlegesen lehet a - jelekből + -t, és a + jelekből - -t csinálni. Egy ilyen átalakítás úgymond 1 db lépésnek (átalakításnak) számít. És a kérdés az, hogy mennyi az a legkevesebb lépés, amit el kell végeznünk az "s" változón ahhoz, hogy a "k" számnak megfelelő mennyiségű negatív előjelű egységünk legyen ebben a módosított "s" változóban (ha kell rajta módosítani). És fontos, hogy a legkevesebb ilyen lépésszám kell. Tehát ezt a lépésszámot (átalakításszámot) kellene a függvényünknek int értékként visszaadnia.

Hát ez volna a nagy-nagy kihívás! Bizony, szerintem ez nem egyszerű. Nekem legalábbis nem sikerült megcsinálni...bárkinek valami meglátás, esetleg bárki meg tudja ezt oldani? Meg lehet egyáltalán oldani? :-D (bár ez egy állásinterjú első körének feladata volt igazából, tehát valószínűleg meg lehet valahogy oldani :-D).

Bármilyen meglátást, segítséget nagyon szívesen veszek és nagyon nagyon köszönök - mert még ha nem is jutottam tovább, de tökre szeretnék fejlődni, és érteni, egy ilyet hogy lehetne megcsinálni..még egyszer millió hála és respect a gondolkodó és alkotó elméknek, akik foglalkoznak ezzel, akár eljuttok az eredményig, akár nem, én nagyon köszönöm. :-)



2021. júl. 23. 20:29
1 2
 1/20 A kérdező kommentje:
Hogy teljes legyen a fenti példám, ott ugye akkor van az "s" sztringünk ("+-+--"), és a "k" számunk pedig a 3 volt. Nekünk az "s" -ben 5 negatív egységünk van, de mi csak 3-at szeretnénk. Ehhez összesen 1 lépést kell végrehajtanunk, ez a legkevesebb átalakítási szám, amivel elérjük a célunk - ekkor az új sztring ez lesz: "+++--". Előfordulhat persze (véleményem szerint), hogy egy ilyen példánál többféleképp (tehát akár azonos lépésszámmal de eltérő helyeken történő módosítgatásokkal) is eljuthatunk a kívánt eredményhez, a lényeg igazából, hogy megtaláljuk a legkevesebb lépésszámot.
2021. júl. 23. 20:41
 2/20 anonim ***** válasza:
Milyen hosszú lehet s?
2021. júl. 23. 20:56
Hasznos számodra ez a válasz?
 3/20 A kérdező kommentje:
Szia! Max. 50 karakter.
2021. júl. 23. 21:36
 4/20 anonim ***** válasza:
33%

Ez a leírás számomra kicsit zavaros.

Nem lehet, hogy megadd a probléma eredeti linkjét?

2021. júl. 23. 21:49
Hasznos számodra ez a válasz?
 5/20 A kérdező kommentje:
Sajnos nincs leírás vagy link, mert ott helyben kellett megcsinálni a feladatot (1,5 óránk volt rá), és angolul volt megfogalmazva a teljes feladat, és utána csináltuk (a feladatleírást pedig nem hozhattuk el). :/
2021. júl. 23. 22:07
 6/20 A kérdező kommentje:
Csak zárójeles infó, hogy én mindenkinek nyomom a zöldet, ha valakinél kevesebb százalékot mutat, az nem miattam. És tényleg nagyon köszönöm, ha bárki tud foglalkozni ezzel a feladattal, tényleg nagyon érdekelne, hogyan lehet ezt megcsinálni..
2021. júl. 23. 22:17
 7/20 anonim ***** válasza:
Ez igy elso ranezesre egy pofonegyszeru BFS, de az 50 karakterre sose futna le. Biztos vagy az 50-ben? k mennyi lehet max? Melyik cegnel volt ez?
2021. júl. 23. 22:32
Hasznos számodra ez a válasz?
 8/20 anonim ***** válasza:

Itt a BFS:

[link]

Mikozben ezt irtam rajottem a gyors megoldasra, de nincs kedvem most azt is megirni.

Ha nem kapsz megoldast mastol, akkor majd osszedobom azt is valamikor a hetvegen.

2021. júl. 23. 22:49
Hasznos számodra ez a válasz?
 9/20 A kérdező kommentje:

#7 -es, #8 -as szia! Ó de jó fej vagy!! Köszönöm!! És hogyha esetleg lenne időd a megoldásod is még megírni, azt is nagyon nagyon köszönöm, és tényleg sokat segítenél! :-) Nekem 50 rémlik mint max. karakter, de mivel ezeket az értékhatárokat bevallom kicsit felületesen is futottam át ott a feladatlapon, ezért nem vagyok benne 100%, de mindenképpen 100 alatt, ezt már jobban merem mondani, mert nem volt nagy számérték, az biztos. A "k" értékre is volt valami megkötés, azt hiszem az, hogy nem lehet negatív szám (úgy ugye nem is lenne értelme a feladatnak), meg volt valami max. érték a "k" -ra is, az már nagyobb szám volt, de pontosan nem tudom - bár ha megvan az algoritmusunk, akkor kvázi bármekkora "k" értékre jó, ha nem írok butaságot. :-)

Respect és ismét köszi, és előre is nagyon köszi, ha még volna kedved leírni a "többit" is :)

2021. júl. 23. 23:07
 10/20 A kérdező kommentje:
Szóval visszatérve, teljesen értem, hogy 50-re nem futna le, és így akkor más kellett legyen, és szerintem 100 alatt.
2021. júl. 23. 23:10
1 2

Kapcsolódó 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

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!