Quy hoạch động Bài toán Palindrome

3 2.1K 59
Quy hoạch động  Bài toán Palindrome

Đang tải... (xem toàn văn)

Thông tin tài liệu

Tài liệu bồi dưỡng học sinh giỏi THPT – Môn Tin học Phần II: Chuyên đề nâng cao CHUYÊN ĐỀ NÂNG CAO CHUYÊN ĐỀ 6: QUY HOẠCH ĐỘNG D BÀI TOÁN XÂU PALINDROME (XÂU ĐỐI XỨNG) Palindrome hay gọi xâu đối xứng, xâu đối gương tên gọi xâu kí tự mà viết từ phải qua trái hay từ trái qua phải xâu không thay đổi VD: MADAM, IOI, Nhờ tính chất đặc biệt mà có nhiều tập có liên quan đến Palindrome, phần lớn chúng thường kèm với QHĐ Bài 1: Xem xâu có phải Palindrome hay không? Đây bản, quan trọng đề cập đến nhiều tập khác Cách làm tốt duyệt đơn O(N) Ý tưởng: Chương trình kiểm tra đối xứng IsPalin(S):boolean; • • • n = length(s) Duyệt từ đến n div 2: Nếu S[i]S[n-i+1] Exit(True); Exit(False); Giải thích: Ta kiểm tra từ đầu đến ½ xâu S: Nếu gặp cặp kí tự khác tức xâu S ko đối xứng: Khi ta kết thúc chương trình cho kết False - Còn sau duyệt mà ko dừng tức đối xứng: kết thúc cho kết True Bài 2: Palindrome liên tiếp dài Cho xâu S ... f[i,j]=f[i+1,j]+f[i,j-1]+1 f[i,j]=f[i+1,j]+f[i,j-1]-f[i+1,j-1]; Đoạn chương trình sau : //QHD: f[i,j] la so luong palindrome doan i j for i:=1 to n f[i,i]:=1; for j:=2 to n for i:=j-1 downto if s[i]=s[j]... i:=j-1 downto if s[i]s[j] then f[i,j]:=min(f[i,j-1],f[i+1,j])+1 else f[i,j]:=f[i+1,j-1]; write(f[1,n]); Bài 6: The next palindrome - SPOJ Cho nhiều số

Ngày đăng: 15/02/2016, 10:16

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan