Cara menggunakan reverse() in python

Membalikkan string adalah salah satu pertanyaan JavaScript yang paling sering ditanyakan pada saat wawancara teknikal. Pewawancara mungkin meminta Anda untuk menulis cara yang berbeda untuk membalikkan string, atau mereka mungkin meminta Anda untuk membalikkan string tanpa menggunakan metode bawaan, atau bahkan mereka mungkin meminta Anda untuk membalikkan string menggunakan rekursi.

Mungkin ada puluhan cara yang berbeda untuk melakukannya, tidak termasuk fungsi reverse bawaan, karena JavaScript tidak memilikinya.

Di bawah ini adalah tiga cara saya yang paling menarik untuk menyelesaikan persoalan membalikkan string dalam JavaScript.

Tantangan Algoritma

Anda mungkin perlu untuk mengubah string menjadi sebuah array sebelum membalikkannya.
Hasil Anda harus berupa string.
function reverseString(str) {
    return str;
}
reverseString("hello");

Test Cases berupa

  • reverseString(“hello”) harus menjadi “olleh”
  • reverseString(“Howdy”) harus menjadi “ydwoH”
  • reverseString(“Greetings from Earth”) harus mengembalikan ”htraE morf sgniteerG”

1. Membalik sebuah String dengan Fungsi Bawaan

Untuk solusi ini, kita akan menggunakan tiga metode: metode String.prototype.split(), metode Array.prototype.reverse() dan metode Array.prototype.join().

  • Metode split() memecah object String menjadi array string dengan memisahkan string menjadi sub-string.
  • Metode reverse() membalikkan array di tempatnya. Elemen array pertama menjadi yang terakhir dan yang terakhir menjadi yang pertama.
  • Metode join() menggabungkan semua elemen array menjadi string.
function reverseString(str) {
    // Step 1. Gunakan method split() untuk mengembalikan sebuah array baru
    var splitString = str.split(""); // var splitString = "hello".split("");
    // ["h", "e", "l", "l", "o"]
 
    // Step 2. Gunakan method reverse() untuk membalikkan array yang baru saja dibuat
    var reverseArray = splitString.reverse(); // var reverseArray = ["h", "e", "l", "l", "o"].reverse();
    // ["o", "l", "l", "e", "h"]
 
    // Step 3. Gunakan method join() untuk menggabungkan semua elemen dari array menjadi sebuah string
    var joinArray = reverseArray.join(""); // var joinArray = ["o", "l", "l", "e", "h"].join("");
    // "olleh"
    
    //Step 4. Mengembalikan string yang sudah dibalik
    return joinArray; // "olleh"
}
 
reverseString("hello");

Menggabungkan ketiga method bersama:

function reverseString(str) {
    return str.split("").reverse().join("");
}
reverseString("hello");

2. Membalikkan String Dengan Pengurangan For Loop

function reverseString(str) {
    // Step 1. Buat string kosong yang akan menampung string yang baru dibuat
    var newString = "";
 
    // Step 2. Buat FOR loop
    /* Poin awal loop adalah (str.length - 1) yang sesuai dengan
       karakter terakhir dari string, "o"
       Selama i lebih besar dari atau sama dengan 0, loop akan terus 			   berlanjut
       Kita mengurangi i setelah setiap iterasi */
    for (var i = str.length - 1; i >= 0; i--) { 
        newString += str[i]; // atau newString = newString + str[i];
    }
    /* Di sini panjang hello sama dengan 5
        Untuk setiap iterasi: i = str.length - 1 dan newString = newString + str[i]
        Iterasi pertama:    i = 5 - 1 = 4,         	newString = "" + "o" = "o"
        Iterasi kedua:   	i = 4 - 1 = 3,         	newString = "o" + "l" = "ol"
        Iterasi ketiga:    	i = 3 - 1 = 2,         	newString = "ol" + "l" = "oll"
        Iterasi keempat:   	i = 2 - 1 = 1,         	newString = "oll" + "e" = "olle"
        Iterasi kelima:    	i = 1 - 1 = 0,         	newString = "olle" + "h" = "olleh"
    Akhir dari FOR Loop*/
 
    // Step 3. Mengembalikan string yang sudah dibalik
    return newString; // "olleh"
}
 
reverseString('hello');

Tanpa komentar:

function reverseString(str) {
    var newString = "";
    for (var i = str.length - 1; i >= 0; i--) {
        newString += str[i];
    }
    return newString;
}
reverseString('hello');

3. Membalikkan String Dengan Rekursi

Untuk solusi ini, kita akan menggunakan dua metode: metode String.prototype.substr() dan metode String.prototype.charAt().

  • Metode substr() mengembalikan karakter pada string mulai dari lokasi yang ditentukan sampai pada jumlah karakter yang ditetapkan.
"hello".substr(1); // "ello"
  • Metode charAt() mengembalikan karakter yang ditentukan dari sebuah string.
"hello".charAt(0); // "h"

Kedalaman rekursi sama dengan panjang String. Solusi ini bukan yang terbaik dan akan menjadi sangat lambat jika String sangat panjang dan ukuran stack menjadi perhatian utama.

function reverseString(str) {
  if (str === "") // Ini adalah kasus terakhir yang akan mengakhiri rekursi
    return "";
  
  else
    return reverseString(str.substr(1)) + str.charAt(0);
/* 
Bagian Pertama dari metode rekursi
Anda harus ingat bahwa Anda tidak hanya memiliki satu panggilan, Anda akan memiliki beberapa panggilan yang bersarang

Setiap panggilan: str === "?" reverseString(str.subst(1)) + str.charAt(0)
Panggilan ke-1 – reverseString("Hello")   akan mengembalikan   reverseString("ello")           + "h"
Panggilan ke-2 – reverseString("ello")    akan mengembalikan   reverseString("llo")            + "e"
Panggilan ke-3 – reverseString("llo")     akan mengembalikan   reverseString("lo")             + "l"
Panggilan ke-4 – reverseString("lo")      akan mengembalikan   reverseString("o")              + "l"
Panggilan ke-5 – reverseString("o")       akan mengembalikan   reverseString("")               + "o"

Bagian kedua dari metode rekursi
Metode ini mencapai kondisi if dan panggilan yang paling dalam segera dikembalikan

Panggilan ke-5 akan memngembalikan reverseString("") + "o" = "o"
Panggilan ke-4 akan memngembalikan reverseString("o") + "l" = "o" + "l"
Panggilan ke-3 akan memngembalikan reverseString("lo") + "l" = "o" + "l" + "l"
Panggilan ke-2 akan memngembalikan reverserString("llo") + "e" = "o" + "l" + "l" + "e"
Panggilan ke-1 akan memngembalikan reverserString("ello") + "h" = "o" + "l" + "l" + "e" + "h" 
*/
}
reverseString("hello");

Tanpa komentar:

function reverseString(str) {
  if (str === "")
    return "";
  else
    return reverseString(str.substr(1)) + str.charAt(0);
}
reverseString("hello");

Operator Kondisional (Ternary):

function reverseString(str) {
  return (str === '') ? '' : reverseString(str.substr(1)) + str.charAt(0);
}
reverseString("hello");

Membalikkan String dalam JavaScript adalah sebuah algoritma sederhana yang dapat ditanyakan pada saat technical phone screening atau wawancara teknikal. Anda bisa mengambil jalan pintas dalam menyelesaikan masalah ini, atau mengambil pendekatan dengan menyelesaikannya dengan rekursi atau bahkan solusi yang lebih kompleks.

Jika Anda memiliki solusi sendiri atau saran, Bagikan di bawah ini di komentar.

Atau Anda dapat mengikuti Saya di Medium, Twitter, Github dan LinkedIn, tepat setelah Anda mengklik hati hijau di bawah ini; -)

Sumber daya

  • split() method — MDN
  • reverse() method — MDN
  • join() method — MDN
  • String.length — MDN
  • substr() method — MDN
  • charAt() method — MDN

ADVERTISEMENT

ADVERTISEMENT

ADVERTISEMENT


Cara menggunakan reverse() in python
Author: Sonya Moisset (English)

🛡️ Doing Cybersecurity stuff || 🌟 GitHub Star || 💻 Epic Women in Cyber/Tech || 👩‍🎤 GirlCode Ambassador || 🥑 DevSecOps/Cloud Security Advocate

christine phandi
Translator: christine phandi

Read more posts.


If you read this far, tweet to the author to show them you care. Tweet a thanks

Learn to code for free. freeCodeCamp's open source curriculum has helped more than 40,000 people get jobs as developers. Get started