trang chủ / bài tập / emailsep

Tách địa chỉ email

Đề bài

Mô tả

Một địa chỉ email được định nghĩa là một xâu có dạng A@B, trong đó AB là hai xâu khác rỗng chỉ gồm các chữ cái Latin thường (az). Nói cách khác, mỗi địa chỉ email chứa đúng một ký tự @, và ký tự @ không được đứng ở đầu hoặc cuối địa chỉ.

Ban đầu người ta có một danh sách các địa chỉ email, viết liên tiếp nhau và ngăn cách bằng dấu phẩy (một địa chỉ có thể xuất hiện nhiều lần). Không may, tất cả dấu phẩy đã biến mất, chỉ còn lại một xâu s là kết quả nối liền tất cả các địa chỉ theo đúng thứ tự cũ.

Hãy khôi phục lại một danh sách địa chỉ email hợp lệ sao cho khi xoá hết dấu phẩy khỏi danh sách đó thì thu được đúng xâu s. Nếu có nhiều đáp án, in ra một đáp án bất kỳ. Nếu không tồn tại danh sách hợp lệ nào, thông báo không có lời giải.

Dữ liệu vào

  • Một dòng duy nhất chứa xâu s chỉ gồm các chữ cái Latin thường và ký tự @.

Dữ liệu ra

  • Nếu không tồn tại cách tách hợp lệ, in ra dòng chữ No solution.
  • Ngược lại, in ra danh sách các địa chỉ email hợp lệ, ngăn cách nhau bằng dấu phẩy (không có khoảng trắng), sao cho khi xoá hết dấu phẩy thì thu được đúng xâu s. Nếu có nhiều đáp án, in ra một đáp án bất kỳ.

Ràng buộc

  • 1|s|200.

Ví dụ

Input Output Giải thích
a@aa@a a@a,a@a Tách thành hai địa chỉ a@a và a@a; nối lại được a@aa@a.
a@a@a No solution Giữa hai dấu @ chỉ có một chữ cái, chữ cái này không thể vừa kết thúc địa chỉ trước vừa mở đầu địa chỉ sau.
@aa@a No solution Xâu bắt đầu bằng @ nên địa chỉ đầu tiên có phần trước @ rỗng, không hợp lệ.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 GO groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0