Đếm xâu con độ dài k phân biệt

Đề bài

Mô tả

Cho một xâu s gồm n ký tự chữ cái latin thường (a–z) và một số nguyên dương k. Hãy đếm số xâu con liên tiếp độ dài đúng k đôi một phân biệt của s.

Một xâu con liên tiếp là xâu sisi+1…si+k−1 với 1≤i≤n−k+1. Hai xâu con được coi là phân biệt nếu chúng khác nhau như xâu (so sánh theo ký tự).

Nếu k>n, không tồn tại xâu con nào và đáp số là 0.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và k.
  • Dòng thứ hai chứa xâu s độ dài n.

Dữ liệu ra

In ra một số nguyên — số xâu con phân biệt độ dài k.

Ràng buộc

  • 1≤n≤105.
  • 1≤k≤105.

Ví dụ

Input Output Giải thích
5 2
ababa
2 Các xâu con độ dài 2: ab, ba, ab, ba. Có 2 xâu phân biệt: ab, ba.
6 3
abcabc
3 Các xâu con độ dài 3: abc, bca, cab, abc. Có 3 xâu phân biệt: abc, bca, cab.
7 10
abcdefg
0 k>n, không có xâu con nào.

Ghi chú

Tổng số xâu con độ dài k là n−k+1 (nếu k≤n), nhưng nhiều xâu có thể trùng nhau.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0