こんにちは、ナナオです。

前回に引き続き競プロを実施していきたいと思います。

今回の問題は以下です。

文字列検索 | アルゴ式

実装

以下のように実装しました。

package main
import (
    "fmt"
)

func main() {
    var s, t string
    fmt.Scan(&s, &t)
    for i := 0; i < len(s) - len(t); i++ {
        if s[i:i+len(t)] == t {
            fmt.Println("Yes")
            return
        }
    }
    fmt.Println("No")
}

ですが、これだと最後尾に一致する文字列があった場合に見逃してしまうので、ループの終了条件に+1します。

package main
import (
    "fmt"
)

func main() {
    var s, t string
    fmt.Scan(&s, &t)
    for i := 0; i < len(s) - len(t) + 1; i++ {
        if s[i:i+len(t)] == t {
            fmt.Println("Yes")
            return
        }
    }
    fmt.Println("No")
}

Goは切り抜きが簡単にできるので、こういった実装は割とすっきり書けますね。

ということで今回はこれで👍