Ошибки принтера

Messages
1,679
Reaction score
288
Website
tehadm.ru
Суть задачи такова:
подается строка символов от a до m
aaabbbbhaijjjm
нужно вывести количество символов которые не входят в промежуток от a до m и вывести общее количество символов
Например:
Code:
s="aaabbbbhaijjjm"
printer_error(s) => "0/14"

s="aaaxbbbbyyhwawiwjjjwwm"
printer_error(s) => "8/22"
 
C-like:
package main

import (
    "fmt"
    "unicode/utf8"
)

func main() {
    fmt.Println(PrinterError("aaabbbbhaijjjm"))
    fmt.Println(PrinterError("aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbmmmmmmmmmmmmmmmmmmmxyz"))
    fmt.Println(PrinterError("kkkwwwaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbmmmmmmmmmmmmmmmmmmmxyz"))
    fmt.Println(PrinterError("kkkwwwaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbmmmmmmmmmmmmmmmmmmmxyzuuuuu"))
}

func PrinterError(s string) string {
    lenStr := utf8.RuneCountInString(s)
    count := 0
    for _, val := range s {
        if val > 'm' {
            count++
        }
    }
    return fmt.Sprintf("%d/%d", count, lenStr)
}
 
так как на codewars не принимался пакет "unicode/utf8", то сделал через конвертацию в runa
C-like:
package main

import (
    "fmt"
)

func main() {
    fmt.Println(PrinterError("aaabbbbhaijjjm"))
    fmt.Println(PrinterError("aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbmmmmmmmmmmmmmmmmmmmxyz"))
    fmt.Println(PrinterError("kkkwwwaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbmmmmmmmmmmmmmmmmmmmxyz"))
    fmt.Println(PrinterError("kkkwwwaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbmmmmmmmmmmmmmmmmmmmxyzuuuuu"))
}

func PrinterError(s string) string {
    lenStr := rune(len(s))
    count := 0
    for _, val := range s {
        if val > 'm' {
            count++
        }
    }
    return fmt.Sprintf("%d/%d", count, lenStr)
}
 
Back
Top