golang mengulang aksara terpanjang secara berterusan

王林
Lepaskan: 2024-02-11 15:24:10
ke hadapan
1065 orang telah melayarinya

golang mengulang aksara terpanjang secara berterusan

editor php Baicao memperkenalkan anda kepada kaedah penyelesaian masalah yang menarik - "golang terus mengulang watak terpanjang". Inti masalah ini adalah untuk mencari aksara yang paling berturut-turut dan nombor mereka dalam rentetan. Di Golang, kita boleh mencapai fungsi ini dengan menggelung setiap aksara rentetan dan menggunakan pembilang dan pembolehubah maksimum. Dengan algoritma yang mudah dan cekap ini, kami boleh menyelesaikan masalah ini dengan mudah dan mendapatkan hasil yang tepat. Seterusnya, mari kita belajar tentang proses pelaksanaan khusus!

Isi soalan

package main

import (
    "fmt"
)

type Result struct {
    C rune // character
    L int  // count
}

func main() {
    fmt.Print(LongestRepetition(""))
}
func LongestRepetition(text string) Result {
    if text == "" {
        return Result{}
    }
    var max Result
    if len(text) == 1 {
        max.C = rune(text[0])
        max.L = 1
        return max
    }
    var count Result
    for _, s := range text {
        if count.C == s {
            count.L++
            count.C = s
            if count.L > max.L {
                max.C = count.C

                max.L = count.L
            }
        } else {
            count.L = 1
            count.C = s
        }

    }
    return max
}
Salin selepas log masuk

//// dijangka : {c: 0, l: 0} sama rata : {c: 98, l: 1}

Saya cuba melengkapkan https://www.codewars.com/kata/586d6cefbcc21eed7a001155/train/go Watak yang paling lama diulang berturut-turut Untuk ujian saya ia berfungsi dengan baik Tetapi apabila saya menolak untuk cw ia gagal untuk menyelesaikan ujian bengkok tolong saya Mungkin saya boleh menambah baik kod saya di suatu tempat atau sesuatu yang saya keliru

Penyelesaian

Penyelesaian anda terlalu rumit. memudahkan.

type result struct {
    c rune // character
    l int  // count
}

func longestrepetition(text string) result {
    max := result{}

    r := result{}
    for _, c := range text {
        if r.c != c {
            r = result{c: c}
        }
        r.l++

        if max.l < r.l {
            max = r
        }
    }

    return max
}
Salin selepas log masuk
Time: 1737ms Passed: 2 Failed: 0
Test Results:
Fixed Tests
it should work with the fixed tests
Random Tests
it should work with the random tests
You have passed all of the tests! :)
Salin selepas log masuk

Atas ialah kandungan terperinci golang mengulang aksara terpanjang secara berterusan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!