查找符合特定要求的字符串

时间:2015-05-20 11:31:34

标签: string algorithm go

有一个函数应该返回true

func accessible(agent string) bool {
  a := strings.Split(agent, " ")
  if len(a) != 3 { return false }
  b := a[0]
  c := a[1]
  d := a[2]
  x := strings.EqualFold(b, c)
  y := b != strings.ToLower(c)
  z := strings.Index(d, b+c) == 1 && len(d) == 5
  return x && y && z
}

但是我无法确定哪个string输入符合这些要求。我错过了什么吗?

PS:这是来自gocode.io的任务#3

1 个答案:

答案 0 :(得分:2)

agent必须是3个“单词”,3个部分用空格分隔:

a := strings.Split(agent, " ")
if len(a) != 3 { return false }

第1个和第2个字必须符合不区分大小写:

x := strings.EqualFold(b, c)

但不区分大小写:

y := b != strings.ToLower(c)

第三个单词必须包含前两个连接:

z := strings.Index(d, b+c) == 1 && len(d) == 5

从索引1开始(前置任意字符)并且必须包含5个字符(5个字节)(postpend有5个字符/字节)。

示例:

fmt.Println(accessible("A a _Aa__"))

<强>打印

true