Java-da mag'lubiyatni qaytarishning eng oson usuli

Ipni teskari yo'naltirish - bu Java texnik intervyusida eng ko'p beriladigan savollardan biri. Suhbatdoshlar sizdan satrni teskari yo'naltirishning turli xil usullarini yozishingizni yoki ichki uslublardan foydalanmasdan satrni teskari aylantirishingizni so'rashi mumkin, yoki hatto rekursiya yordamida satrni teskari aylantirishingizni so'rashlari mumkin.

Quyida Java-da mag'lubiyatni teskari yo'naltirish uchun foydalanishingiz mumkin bo'lgan turli xil usullar mavjud.



Java-da teskari chiziq, eng oson yo'li

Java-da mag'lubiyatni teskari yo'naltirishning eng oson usuli - o'rnatilgan reverse() StringBuilder funktsiyasi sinf.


Misol:

package io.devqa.tutorials; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; class ReverseString {
String reverse(String inputString) {
return new StringBuilder(inputString).reverse().toString();
}
@Test
public void testAWord() {
assertEquals('tobor', new ReverseString().reverse('robot'));
} }

Bog'liq:




Recursion yordamida teskari satr

Java-da mag'lubiyatni teskari yo'naltirishning yana bir usuli - bu rekursiyadan foydalanish va charAt() dan foydalanish String usuli sinf

Misol:

import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; class ReverseString {
String reverse(String inputString) {

StringBuilder reverseStringBuilder = new StringBuilder();

for(int i = inputString.length() - 1; i>=0; i--){

reverseStringBuilder.append(inputString.charAt(i));
}

return reverseStringBuilder.toString();
}
@Test
public void testAWord() {
assertEquals('tobor', new ReverseString().reverse('robot'));
} }

Yuqoridagilarning o'zgarishi toCharArray() dan foydalanish va belgilar ustidan pastadir, masalan:

import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; class ReverseString {
String reverse(String inputString) {
String outString = '';
for(char c : inputString.toCharArray()) {

outString = c + outString;
}
return outString;
}
@Test
public void testAWord() {
assertEquals('tobor', new ReverseString().reverse('robot'));
} }


Java 8 da teskari satr

import org.junit.jupiter.api.Test; import java.util.stream.Collectors; import java.util.stream.IntStream; import static org.junit.jupiter.api.Assertions.assertEquals; class ReverseString {
String reverse(String inputString) {
return IntStream.range(0, inputString.length())

.mapToObj(x-> inputString.charAt((inputString.length()-1) - x))

.map(character -> String.valueOf(character))

.collect(Collectors.joining(''));
}
@Test
public void testAWord() {
assertEquals('tobor', new ReverseString().reverse('robot'));
} }