luoheng
10/25/2019 - 12:16 PM

reverseOnlyLetters


func isAlpha(c byte) bool {
    return c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z'
}

func reverseOnlyLetters(S string) string {
    res := []byte(S)
    for i, j := 0, len(res)-1; i < j; i++ {
        if isAlpha(res[i]) {
            for !isAlpha(res[j]) {
                j--
            }
            res[i], res[j] = res[j], res[i]
            j--
        }
    }
    return string(res)
}