Giới thiệu
Gần đây, tôi đã quen với việc gõ bằng Swype .
Tôi đã nhận thấy một số từ nhất định có thể được tạo ra bằng cách vẽ một đường thẳng từ chữ cái đầu của bạn đến chữ cái kết thúc của bạn hoặc bằng cách bỏ qua các chữ cái lặp lại.
Ví dụ: tôi có thể nhập từ balloonbằng cách Swyping qua các chữ cái sau:
b> a> l> o> n.
Thử thách
Hãy để chúng tôi xác định Đường dẫn Swype ngắn nhất , hoặc SSP, là số lượng tối thiểu của các phân đoạn dòng có thể phân biệt cần thiết để nhập một chuỗi. Một đoạn thẳng là một đường thẳng liên tục giữa bất kỳ hai hoặc nhiều chữ cái. Bất kỳ thay đổi nào về hướng đều bắt đầu một phân đoạn dòng mới - mặc dù một số từ có thể bị Swyped bằng cách chỉ vẽ một đường thẳng duy nhất.
Sử dụng bố trí bàn phím QWERTY đơn giản này :
q w e r t y u i o p
a s d f g h j k l
z x c v b n m
Trong ví dụ trên, từ balloonsẽ có một SSPsố 4chi tiết trong chuỗi dưới đây:
1) Start at `b` (line segments = 0)
2) slide to `a` (line segments = 1)
3) slide to `l` (line segments = 2)
4) slide to `o` (line segments = 3)
5) slide to `n` (line segments = 4)
Chuỗi qwertycó SSP= 1 vì không cần thay đổi hướng khi Swyping từ này.
Đầu vào
Một chuỗi từ đơn có chứa bất kỳ a-zthông qua STDIN, đối số hàm hoặc dòng lệnh.
Đầu ra
In qua STDOUT, trả lại hoặc ngôn ngữ của bạn thay thế gần nhất, số nđại diện cho chuỗi SSP.
Một dòng mới tùy chọn trong outut. Sơ hở tiêu chuẩn không được phép. Gửi ngắn nhất trong byte chiến thắng.
Ghi chú
- Thay đổi hướng bắt đầu một phân khúc dòng mới.
- Các chữ cái lặp lại chỉ được tính một lần (ví dụ:
bookkeepernên được coi làbokeper). - Thông thường, Swpye sửa các chữ cái bị bỏ lỡ bằng cách nhìn vào các chữ cái lân cận và điền vào dự đoán tốt nhất của nó. Đối với thử thách này, giả sử không có sự gia tăng ngôn ngữ tự nhiên, văn bản dự đoán hoặc sửa lỗi.
A-ZĐầu vào chữ hoa được coi như đối tác chữ thường của chúng.- Bỏ qua bất kỳ số nào
0-9trong đầu vào. - Đường chéo được phép - có nghĩa là, một đường thẳng mà bìa thư
o,k,n, ví dụ, tính là1phân khúc. Quy tắc này áp dụng cho bất kỳ độ dốc đường chéo (ví dụ: chữc,h,ilà phù hợp).
Ví dụ
Input Output
---------------------
a 0
aa 0
aaaaaa 0
aaaaaabc 2
in 1
int 2
java 3
qwerty 1
chicago 5
balloon 4
BALLOON 4
typewriter 5
bookkeeper 6
stackexchange 11
2hello7 3
2HELLO7 3