DEV Community

Discussion on: Daily Challenge #80 - Longest Vowel Change

Collapse
 
pmkroeker profile image
Peter • Edited

In golang! Could be simpler but lots of loops!

func vowel(input string) string {
    var ls string
    var ret string
    for _, c := range input {
        switch c {
        case 'a', 'e', 'i', 'o', 'u':
            ls += string(c)
        default:
            if len(ls) > len(ret) {
                ret = ls
            }
            ls = ""
        }
    }
    if len(ls) > len(ret) {
        ret = ls
    }

    return ret
}

Go Playground example original
EDIT:
Add new example with changes from comments
Go Playground example with new switch

EDIT 2:
Realized it would not handle vowels at the end of the string
Go Playground

Collapse
 
rafaacioly profile image
Rafael Acioly • Edited

Hey @peter , you can also use multiple values in a single case statement


switch c {
case 'a', 'e', 'i', 'o', 'u':
    ls += string(c)
default:
    arr = append(arr, ls)
    ls = ""
}

github.com/golang/go/wiki/Switch#m...

Collapse
 
pmkroeker profile image
Peter

Hey good to know thanks! Just learning go so didn't realize I could do that. Thanks!

Thread Thread
 
rafaacioly profile image
Rafael Acioly • Edited

there's also strings.Count built-in method ;)

golang.org/pkg/strings/#Count

strings.Count("codewarriors", "a") // 1