trang chủ / đề bài / phonenums22

Số Điện Thoại

Đề bài

Mô tả

Bessie có một bàn phím số điện thoại với các số 1-9 được sắp xếp trong lưới 3×3:

  • 123456789

Một số điện thoại là một dãy chữ số từ 1 đến 9. Bessie gõ số điện thoại của mình từ trái sang phải, mỗi lần nhấn gõ ra một đoạn liên tiếp các chữ số tiếp theo:

  • Nhấn một phím đơn lẻ (ví dụ 5): gõ ra đúng một chữ số.
  • Nhấn hai phím liền kề (chia sẻ cạnh chung) cùng lúc (ví dụ 1 và 2, hoặc 2 và 5): gõ ra hai chữ số tiếp theo, chính là hai phím đó nhưng theo thứ tự tùy ý.
  • Nhấn bốn phím tạo thành hình vuông 2×2 cùng lúc (ví dụ 1,2,4,5): gõ ra bốn chữ số tiếp theo, chính là bốn phím đó nhưng theo thứ tự tùy ý.

Các phím trong cùng một lần nhấn đôi một khác nhau, nên mỗi lần nhấn gõ ra đúng số chữ số bằng số phím được nhấn, và chuỗi gõ ra luôn có cùng độ dài với số điện thoại.

Cho chuỗi chữ số mà Bessie đã gõ ra, hãy đếm xem có bao nhiêu số điện thoại khác nhau có thể là số điện thoại ban đầu của Bessie. Hai số điện thoại là khác nhau nếu chúng khác nhau ở ít nhất một vị trí chữ số.

Dữ liệu vào

  • Dòng đầu tiên: số nguyên T (1≤T≤10), số lượng test case.
  • T dòng tiếp theo, mỗi dòng chứa một chuỗi không rỗng gồm các chữ số từ 1 đến 9.
  • Tổng độ dài tất cả các chuỗi không vượt quá 105.

Dữ liệu ra

Với mỗi test case, in ra số lượng số điện thoại có thể, lấy dư cho 109+7.

Ràng buộc

  • 1≤T≤10
  • Mỗi chuỗi chỉ chứa các chữ số 1-9 và không rỗng.
  • Tổng độ dài tất cả các chuỗi ≤105.

Các cặp phím liền kề (chia sẻ cạnh):

  • (1,2),(2,3),(4,5),(5,6),(7,8),(8,9),(1,4),(2,5),(3,6),(4,7),(5,8),(6,9)

Các bộ bốn phím hình vuông 2×2:

  • {1,2,4,5},{2,3,5,6},{4,5,7,8},{5,6,8,9}

Ví dụ

Input Output Giải thích
5
1478
4455
5968
31313211
123659874
5
2
24
3
255
Với chuỗi 1478 có 5 số điện thoại: 1478, 4178, 1748, 1487 và 4187; chẳng hạn 4187 được gõ bằng hai lần nhấn {1,4} và {7,8}. Với chuỗi 4455 chỉ có 4455 và 4545, trong đó 4545 gõ bằng ba lần nhấn 4, {4,5}, 5. Với chuỗi 5968, bốn phím 5,6,8,9 tạo thành hình vuông nên một lần nhấn duy nhất cho ra đủ 4!=24 số điện thoại.

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