Chủ đề: Kiểm tra chuỗi đối xứng, không phân biệt chữ hoa chứ thường và xóa các dấu câu có trong chuỗi
-
29-08-2014, 11:45 AM #1
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Kiểm tra chuỗi đối xứng, không phân biệt chữ hoa chứ thường và xóa các dấu câu có trong chuỗi
Em nó là câu 1 trong cái đề này
https://drive.google.com/file/d/0BzhvMGckJdEfMDNNdE84ZERJbzg/edit?usp=sharing
code của mình đây.
Mã:#include<conio.h> #include<stdio.h> #include<string.h> void loaibodaucham(char S[]) { int i = 0; while (i <= strlen(S)) { if (S[i] > 0 && S[i] <= 46) { int j = i; while (j < strlen(S)) { S[j] = S[j + 1]; j++; } } i++; } } int palindrome(char S[]) { int i = 0; int j = strlen(S) - 1; while (i < j) { if (S[i] != S[j - i] && S[i] + 32 != S[j - i] && S[i] != S[j - i] + 32) return 0; i++; } return 1; } void main() { char S[256]; printf("Nhap chuoi: "); gets(S); char S1[256]; strcpy(S1, S); loaibodaucham(S1); printf("%d ", palindrome(S1)); }
View more random threads:
- Hỏi về NXC...?????
- Thuật toán tìm kiếm sinh viên?
- Tính tổng n số nguyên tố (sửa dùm mình với)
- Bài toán thống kê-mình thấy rất hay nhưng chưa có lời giải.
- Viết chương trình nhập vào mảng 1 chiều, sau đó tìm xem có đoạn tăng nào có tổng lớn nhất
- BT Căn bản Kiểu cấu trúc
- Giúp em sửa lỗi nho nhỏ này với !
- Bài om 3 cây này làm tiếp như nào ạ???
- tính độ phức tạp của thuật toán
- Vấn đề khi truyền tham số vào một hàm, nhưng hàm đó không nhận?
-
29-08-2014, 05:20 PM #2
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Hi Razelux !
Chuỗi đối xứng Palindrome, là 1 bài toán khá hay. Nếu giải theo cách bình thường cắt chuỗi thì mất cái hay của bài toán.
Bạn thử tham khảo cách làm này nhé, tôi dùng đệ quy để so sánh ký tự đầu và cuối chuỗi , và cho chúng giảm tăng tùy thuộc vào kí tự đó có phải là Alphabet hay không.
Mã:#include<conio.h> #include<stdio.h> #include<string.h> #include <ctype.h> int checkAlphabet(char c) { if((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) return 1; return 0; } int palindrome(char S[],int &i,int &j) { if(i>=j) return 1; if(checkAlphabet(S[i])!=1 && checkAlphabet(S[i])!=1) { i++; j--; palindrome(S,i,j); } else if(checkAlphabet(S[i]) != 1) { i++; palindrome(S,i,j); } else if(checkAlphabet(S[j]) != 1) { j--; palindrome(S,i,j); } else { if(toupper(S[i]) != toupper(S[j])) return 0; else { i++; j--; palindrome(S,i,j); } } } void main() { char S[256]; printf("Nhap chuoi: "); gets(S); int i =0; int j = strlen(S) - 1; printf("%d ", palindrome(S,i,j)); getch(); }
khi đề cập đến đội hình MU, không thể ko nói tới một trong các câu lạc bộ bóng đá huyền thoại và với tầm ảnh hưởng nhất trong lịch sử của môn thể thao vua. Với hơn 1 thế kỷ còn đó và phát triển,...
Đội hình MU - Manchester United:...