THINK JAVA: CÁCH SUY NGHĨ NHƯ NHÀ KHOA HỌC MÁY TÍNH - Trang 80

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

ườ

ể ủ

ướ

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.