Kezdőoldal » Számítástechnika » Programozás » Hogy lehetne Java-ban megírni...

Hogy lehetne Java-ban megírni azt, hogy egy Stringben lévő szvakat kiírjuk visszafele, úgy hogy a szavak megtartsák pozíciójukat, valamint a szóközök is megmaradjanak?

Figyelt kérdés

Adott egy String. A Stringben van egy szöveg, és ennek a szövegnek a szavit kellene visszafele kiírni, úgy, hogy az megtartsa a pozícióját, illetve a szóközök megmaradjanak (ha esetleg szóközzel kezdődik, felyeződik, két szóköz van két szó között, ezek megmaradjanak).


Bemenet: yge őttek moráh

Kimenet: egy kettő három


Splittel próbáltam megoldani, amibe belekezdtem a szóközöket nem tartja meg, illetve hibát ír a ciklusban: Array type expected; found: 'java.lang.String'


Scanner szoveg = new Scanner(System.in);

s = szoveg.nextLine();


String[] str = s.split(" ");

for (int i = 0; i < str.length; i++){

for (int j = str[i].length() - 1; j >= 0; j--) {

System.out.println(str[i][j]);

}

}



2022. febr. 6. 15:09
1 2
 1/12 anonim ***** válasza:
0%
sztekk
2022. febr. 6. 15:14
Hasznos számodra ez a válasz?
 2/12 anonim ***** válasza:
0%

while not end.of.line do stack.push[line[index]];

while not stack.is.empty do print[stack.pop];

2022. febr. 6. 15:18
Hasznos számodra ez a válasz?
 3/12 anonim ***** válasza:
93%

Semmi ertelme stacket hasznalni, csak feleslegesen emeled O(1)-rol O(n)-re a space complexityt.

Elindulsz egy i pointerrel a stringen es 2 eseted van:

- szoveg[i] whitespace -> kiirod es lepsz tovabb

- szoveg[i] nem whitespace -> elindulsz egy j = i pointerrel, elmesz a szo vegeig, kiirod a szot visszafele (tehat j-tol i-ig), vegul lepsz i-vel j + 1-re.

2022. febr. 6. 16:11
Hasznos számodra ez a válasz?
 4/12 anonim ***** válasza:
0%

Semmi ertelme így túl bonyolítani, csak feleslegesen emeled O(1)-rol O(n)-re a time complexityt.


A stack-es megoldást várja el tőle a tanár.

2022. febr. 6. 16:15
Hasznos számodra ez a válasz?
 5/12 anonim ***** válasza:
90%
4-es amit te írtál, az nem is azt csinálja amit a feladat kér.
2022. febr. 6. 16:23
Hasznos számodra ez a válasz?
 6/12 anonim ***** válasza:
#4 milyen tanar?
2022. febr. 6. 16:24
Hasznos számodra ez a válasz?
 7/12 anonim ***** válasza:
0%
5: LOL, szerinted.
2022. febr. 6. 16:28
Hasznos számodra ez a válasz?
 8/12 anonim ***** válasza:

7-es elmondod mit értek félre a pszeudokódodon(?)?

Én úgy látom a string karaktereit sorban betolod egy stack-be, majd kiírod őket a stack-ből pop-olva, ami a string megfordítását eredményezi. A feladat meg ugye nem ez.

2022. febr. 6. 16:43
Hasznos számodra ez a válasz?
 9/12 anonim ***** válasza:
20%

Igazad van, nehogy már esélyt adjunk a kérdezőnek a gondolkodáshoz, hadd haljon meg hülyén szegény.

Nehogy eljusson addig a felismerésig, a kimenetet látva, hogy elég ha a push-okat addig folytatja amíg space-hez nem ér, onnan pop a kimeneti stringbe a stack aljáig, majd egy space-t hozzá rak és folytatja tovább ugyanígy.


Nehogy már megadjuk neki a saját erőből való építkezés luxusát. Adjunk neki totál kész megoldást, neveljük le arról, hogy megerőltesse az agytekervényeit.

2022. febr. 6. 16:51
Hasznos számodra ez a válasz?
 10/12 anonim ***** válasza:

A kérdésre válaszolva:

Jó úton indultál el; három hibád van:

System.out.println helyett használj csak System.out.print-et, hogy ne rakjon újsort minden karakter után.


Array type expected; found: 'java.lang.String'

Ez azért van, mert a String objektumokat nem lehet a [] operátorral indexelni, helyette a charAt metódus kell:

str[i][j] helyett str[i].charAt(j)


A harmadik az eltünt spacek. A split metódus megeszi a szeparátor karaktereket, úgyhogy ezt kompenzálnod kell a kiíratásnál.

A belsö ciklus után de még a külsön belülre ha teszel egy System.out.print(" ") -t, akkor pont jó lesz.

2022. febr. 6. 16:53
Hasznos számodra ez a válasz?
1 2

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!