s x y ra n u b n kích ho t
ẽ ả
ế
ạ
ạ middle lên m t chu i ch có hai ch cái? M t ch cái? Không có ch cái
ộ
ỗ
ỉ
ứ
ộ
ữ
ữ
nào?
4.
Cách đ nh nghĩa thông th
ng c a m t palindrome là m t t mà đ c xuôi ng
c đ u gi ng nhau, ch ng
ị
ườ
ủ
ộ
ộ ừ
ọ
ượ ề
ố
ẳ
h n “otto” và “palindromeemordnilap.” M t cách khác đ đ nh nghĩa m t thu c tính nh th baft là quy
ạ
ộ
ể ị
ộ
ộ
ư ế
đ nh m t cách ki m tra thu c tính đó. Ch ng h n, ta có th nói “m t ch cái là m t palindrome, và m t
ị
ộ
ể
ộ
ẳ
ạ
ể
ộ
ữ
ộ
ộ
t hai ch là m t palindrome n u hai ch cái c a nó gi ng nhau, và m t t b t kì khác là m t
ừ
ữ
ộ
ế
ữ
ủ
ố
ộ ừ ấ
ộ
palindrome n u ch cái đ u gi ng ch cái cu i và khúc gi a cũng là m t palindrome.” Hãy vi t m t
ế
ữ
ầ
ố
ữ
ố
ữ
ộ
ế
ộ
ph
ng th c đ quy có tên
ươ
ứ ệ
isPalindrome nh n vào m t
ậ
ộ String và tr l i m t boolean cho bi t t đó có
ả ạ
ộ
ế ừ
ph i là palindrome hay không.
ả
5. M t khi b n đã có đo n mã đ ki m tra palindrome, hãy tìm cách đ n gi n hoá nó b ng cách gi m s
ộ
ạ
ạ
ể ể
ơ
ả
ằ
ả
ố
đi u ki n trong phép ki m tra. G i ý: vi c l y đ nh nghĩa chu i r ng cũng là palindrome có th giúp ích.
ề
ệ
ể
ợ
ệ ấ
ị
ỗ ỗ
ể
6. Hãy vi t ra trên gi y m t chi n l
c có tính l p đ ki m tra palindrome. Có m t s ph
ng án kh dĩ,
ế
ấ
ộ
ế ượ
ặ
ể ể
ộ ố
ươ
ả
b i v y b n hãy đ m b o ch c ch n m t k ho ch rõ ràng tr
c khi b t đ u vi t mã l nh.
ở ậ ạ
ả
ả
ắ
ắ
ộ ế
ạ
ướ
ắ ầ
ế
ệ
7.
Hãy t o l p chi n l
c b n ch n thành m t ph
ng th c có tên
ạ ậ
ế ượ ạ
ọ
ộ
ươ
ứ
isPalindromeIter.
8. Câu h i ph : Ph l c
ỏ
ụ
ụ ụ B có mã l nh đ đ c m t danh sách các t v ng t m t file. Hãy đ c m t danh
ệ
ể ọ
ộ
ừ ự
ừ ộ
ọ
ộ
sách các t r i in ra nh ng palindrome.
ừ ồ
ữ
Bài t p 10
ậ
M t t đ
c g i là “abecedarian” n u các ch cái trong t đó xu t hi n theo th t b ng
ộ ừ ượ ọ
ế
ữ
ừ
ấ
ệ
ứ ự ả
ch cái. Ch ng h n, sau đây là t t c nh ng t abecedarian g m 6 ch cái trong ti ng Anh.
ữ
ẳ
ạ
ấ ả
ữ
ừ
ồ
ữ
ế
abdest, acknow, acorsy, adempt, adipsy, agnosy, befist, behint, beknow, bijoux, biopsy,
cestuy, chintz, deflux, dehors, dehort, deinos, diluvy, dimpsy
1. Hãy miêu t m t quy trình ki m tra xem m t t (String) cho tr
c là abecedarian hay không, n u coi
ả ộ
ể
ộ ừ
ướ
ế
r ng t đó ch g m các ch cái th
ng. Quy trình này có th mang tính l p hay đ quy.
ằ
ừ
ỉ ồ
ữ
ườ
ể
ặ
ệ
2.
T o d ng quy trình trên thành m t ph
ng th c mang tên
ạ
ự
ộ
ươ
ứ
isAbecedarian.
Bài t p 11
ậ
M t dupledrome là m t t ch ch a các ch cái ghép đôi, ch ng h n nh “llaammaa” hay
ộ
ộ ừ ỉ ứ
ữ
ẳ
ạ
ư
“ssaabb”. Tôi đ ra gi thi t ràng trong ti ng Anh thông d ng không h có dupledrome nào. Đ ki m
ề
ả
ế
ế
ụ
ề
ể ể
ch ng gi thi t đó, tôi mu n có ch
ng trình đ c l n l
t các t v ng t m t cu n t đi n r i ki m tra
ứ
ả
ế
ố
ươ
ọ ầ ượ
ừ ự
ừ ộ
ố ừ ể ồ
ể
xem t đó có ph i là dupledrome hay không. Hãy vi t m t ph
ng th c mang tên
ừ
ả
ế
ộ
ươ
ứ
isDupledrome nh n
ậ
vào m t String r i tr l i m t boolean đ cho bi t t đó có ph i là dupledrome không.
ộ
ồ ả ạ
ộ
ể
ế ừ
ả
Bài t p 12
ậ
1. Vòng gi i mã Captain Crunch ho t đ ng b ng cách l y m i ch cái trong m t chu i r i c ng 13 vào nó.
ả
ạ ộ
ằ
ấ
ỗ
ữ
ộ
ỗ ồ ộ
Ch ng h n, ’a’ tr thành ’n’ và ’b’ tr thành ’o’. Đ n cu i, các ch cái “quay vòng l i”, b i v y ’z’ tr
ẳ
ạ
ở
ở
ế
ố
ữ
ạ
ở ậ
ở
thành ’m’. Hãy vi t m t ph
ng th c nh n vào m t String r i tr l i m t String m i có ch a chu i sau
ế
ộ
ươ
ứ
ậ
ộ
ồ ả ạ
ộ
ớ
ứ
ỗ
mã hoá. B n c n coi ràng String ban đ u ch ch a các ch in, ch th
ng, d u cách, mà không có d u
ạ ầ
ầ
ỉ ứ
ữ
ữ ườ
ấ
ấ
ch m ph y gì khác. Các ch th
ng thì đ
c mã hoá thành ch th
ng, ch in thành ch in. B n không
ấ
ẩ
ữ ườ
ượ
ữ ườ
ữ
ữ
ạ
đ
c mã hoá
ượ
các d u cách.
ấ
2. Hãy khái quát hoá ph
ng th c Captain Crunch sao cho thay vì c ng 13 vào t ng ch cái, nó có th c ng
ươ
ứ
ộ
ừ
ữ
ể ộ
thêm b t kì s nào. Bây gi b n có th mã hoá b n cách c ng 13 r i gi i mã b ng cách c ng -13. Hãy th
ấ
ố
ờ ạ
ể
ằ
ộ
ồ
ả
ằ
ộ
ử
làm đi u này.
ề
Bài t p 13
ậ
N u b n đã gi i các bài t p GridWorld trong Ch
ng
ế
ạ
ả
ậ
ươ 5, có th b n s thích bài t p này.
ể ạ ẽ
ậ
M c đích là dùng toán l
ng giác đ khi n các con b (Bug) đu i b t l n nhau. Hãy sao chép
ụ
ượ
ể
ế
ọ
ổ ắ ẫ
file BugRunner.java thành ChaseRunner.java r i nh p nó vào môi tr
ng phát tri n c a b n. Tr
c khi
ồ
ậ
ườ
ể ủ
ạ
ướ