Saya harus membuat basis Alfabet atau Rentang pada string yang diberikan, yaitu new Alphabet('ax, b,c, d') di mana ax, b, c, d akan menjadi bagian dari daftar elemen alfabet, saya harus membagi string yang diberikan dengan koma sebagai pembatas , tetapi , juga bisa menjadi elemen sehingga Anda bisa melakukan new Alphabet(',, {, }, [, ]'). Masalah utamanya adalah saya tidak boleh menggunakan RegExp untuk menyelesaikan pencocokan pola. Spasi Putih antara elemen dan koma sebelumnya bersifat opsional, sehingga tidak dapat digunakan sebagai pembatas.

Saya sudah mencoba memikirkan solusi untuk menyelesaikan pencocokan pola tetapi saya tidak dapat melihat solusi di mana RegExp tidak termasuk.

Akan sangat bagus jika ada yang bisa membantu saya dengan beberapa kode semu yang menjelaskan solusi.

0
Daniel Alessandro Aguilar 13 Agustus 2019, 21:18

1 menjawab

Jawaban Terbaik

Baiklah jadi ini akan terlihat mirip dengan python/TypeScript dan cukup kasar. Dari pemahaman saya, Anda memecah komponen string menjadi array berdasarkan koma. Jika Anda tahu cara menggunakan RegEx, Anda bisa mengkodekannya ke dalam for loop (bahan untuk dipikirkan). Pokoknya ini dia:

function makeAlphabet(string):
    charArray = [] // for storing alphabet
    sequence = []  // for storing symbol like 'ax'
    len = length(string)
    for( i=0, i < len, i++):
        char = string[i]
        // we hit comma and our sequence exists or we are at the end of the array
        if(char == ',' && length(sequence) > 0 || i == (len - 1)):
            // add char sequence to array 
            charArray.append(sequence)
            sequence = []
        else:
            sequence.append(char)
    return charArray

Ini akan mengembalikan array array karakter yang mewakili setiap elemen. Anda bisa membuat array bagian dalam menjadi string jika itu yang Anda butuhkan. Logikanya pada dasarnya memeriksa untuk melihat apakah kita memiliki karakter sebelumnya jika kita menemukan koma. Jika demikian, ia menambahkan urutan ke array jika tidak, ia menambahkan koma ke urutan.

0
Matt Bussing 13 Agustus 2019, 18:42