如何获得一片中值的差异?

时间:2019-03-26 14:57:05

标签: go

我必须从文件中检索单词,而不是切片,而只需要输出单词,其中字母是连续字母,例如feed和bcd

所以我想出了这个函数,其中r [] rune是字母的int代表,line是文件中的单词。该函数应该减去位置k的值和位置m的值,并且如果输出为0或1,它将返回bool。但是如果l [k] -l [m] = 0 |我将无法得到这个| l [k] -l [m] = 1 {工作

func differenceofint(r []rune, line string) bool{
        for i, j := range r{
        k := int(i) //position
        l := int(j) //the int representative
        m:=int (i+1)
        fmt.Println(k, l,m)
        if l[k]-l[m]=0 | l[k]-l[m]=1{
           return true
        }
    }
return false
}

1 个答案:

答案 0 :(得分:0)

不确定我是否完全明白想要什么(bdc似乎不是一个流行的词),但是我的解释如下:

package main

import (
  "fmt"
  "strings"
)

func running(word string) bool {

    evaluator := int(word[0])

    for _, v := range word {
        if int(v) != evaluator-1 && int(v) != evaluator+1 && int(v) != evaluator {
            return false
        }
        evaluator = int(v)
    }
    return true
}

func runningWords(line string) (result []string) {
    words := strings.Split(line, " ")
    for _, aword := range words {
        if running(aword) {
            result = append(result, aword)
        }
    }
    return
}

func main() {
    fmt.Println(runningWords("algo atum feed bcd abcdef"))
}

和游乐场链接https://play.golang.org/p/A44Xed6Naa6

关于代码的注释:

  1. 或为||

  2. 我认为您想访问行符文。 l是整数,因此不会编译l [k]或l [m]。我想你想要r [k]或l [m]

  3. 如果是长文本,则需要考虑换行符,特殊字符,标点符号和其他一些问题。

好运