Thỏ thích làm các bài tập về xử lý chuỗi. Thỏ định nghĩa rằng một chuỗi được gọi là tốt
là một chuỗi mà tất cả các kí tự \(alphabet\) trong đó đều là kí tự hoa hoặc là kí tự thường
Ví dụ :
-
ABCDEF
là một chuỗi tốt -
xyabx@#
là một chuỗi tốt -
Xy3z5A
là một chuỗi xấu
Trong khi đọc tài liệu, Thỏ cảm thấy có rất nhiều chuỗi xấu xuất hiện và Thỏ muốn chuyển tất cả
các chuỗi xấu này thành chuỗi tốt với số lượng thao tác là ít nhất có thể.
Trong một thao tác, Thỏ chỉ có thể thay đổi MỘT kí tự trong xâu S thành một kí tự bất kì nào đó.
Bạn hãy giúp Thỏ tìm số lượng thao tác nhỏ nhất có thể để chuyển chuỗi xấu thành chuỗi tốt nhé.
Input
-
Dòng đầu tiên là số \(T\) số lượng test case \((1 \leq T \leq 10)\).
-
\(T\) dòng tiếp theo , mỗi dòng chứa một xâu \(S\) là chuỗi cần phải chuyển \((1 \leq Len(S) \leq 100)\).
Output
- Tương ứng với mỗi chuỗi \(S\), in ra số lượng thao tác để chuyển chuỗi \(S\) thành chuỗi tốt, nếu trong chuỗi
không có kí tự alphabet nào, in raInvalid Input
.
Example
Test 1
Input
3
abcEfg
!@6#2
123A
Output
1
Invalid Input
0
Bình luận
Spoiler Alert
Dựa theo định nghĩa, ta rút ra được nhận xét: chỉ cần 1 ký tự, hoặc là chữ cái hoa, hoặc là chữ cái thường trong bảng chữ cái Alphabet thì chuỗi đó là chuỗi tốt .Vì thế các chuỗi như
a###*#&
vàV*&#&$*22
là các chuỗi tốt.Vì vậy:
Invalid Input
)Vậy là bài toán đã được giải quyết xong.
Các bạn có thể tham khảo code của mình ở đây. (\(\color{red}{\text{Không chép nha}}\))
Nếu các bạn có gì thắc mắc hoặc không hiểu, các bạn cứ comment nhé ! Mình sẽ giải thích cặn kẽ cho các bạn.
Update: Cho mình gửi lời cảm ơn tới các bạn/anh/chị/em upvote hướng dẫn của mình.
code rick roll =)))
code uy tín đấy =))
cảm ơn bạn. Đã thêm vào mục editorial.
bạn khá quá :>
Ai thấy hay cho ✋ nào
ý tưởng hơi dài dòng nhưng rất hay thanks anh