Thử thách: Tần suất ký tự
Thuộc phần Logic và luồng chương trình trong hành trình PHP của Coddy. Bài học 66 trên 68.
Thử thách
DễBạn sẽ nhận một đầu vào duy nhất: một chuỗi văn bản.
Đầu vào sẽ là một chuỗi theo định dạng này: hello world
Đọc chuỗi đầu vào. Đếm tần suất của từng ký tự trong chuỗi, không phân biệt chữ hoa chữ thường và không tính khoảng trắng. Lưu tần suất ký tự trong một mảng kết hợp, trong đó khóa là các ký tự và giá trị là số lần xuất hiện của chúng.
Sắp xếp mảng kết hợp theo khóa theo thứ tự bảng chữ cái tăng dần bằng ksort().
In từng ký tự và tần suất của nó theo định dạng sau:
[character]: [count]
In từng cặp ký tự và tần suất trên một dòng riêng, theo thứ tự bảng chữ cái.
Định dạng đầu vào:
- Một dòng duy nhất chứa chuỗi văn bản (ví dụ:
hello world)
Đầu ra mong đợi: Từng ký tự và tần suất của nó được in trên một dòng riêng theo định dạng: [character]: [count], sắp xếp theo thứ tự bảng chữ cái của ký tự
Tự làm thử
<?php
// Đọc đầu vào
$text = trim(fgets(STDIN));
// TODO: Viết code bên dưới
// 1. Chuyển chuỗi thành chữ thường
// 2. Đếm số lần xuất hiện của từng ký tự (không tính khoảng trắng)
// 3. Sắp xếp mảng theo khóa bằng ksort()
// 4. In ra từng ký tự và số lần xuất hiện của ký tự đó
?>Tất cả bài học trong Logic và luồng chương trình
1Hàm nâng cao
Hàm ẩn danhClosure và 'use'Hàm mũi tênHàm callbackDùng 'call_user_func'Hàm biếnTruyền tham chiếuHàm đệ quyÔn tập: tổng hợp về hàm4Mảng đa chiều
Tạo mảng 2 chiềuTruy cập phần tử trong mảng 2 chiềuChỉnh sửa phần tử trong mảng 2 chiềuLặp qua các vòng lặp lồng nhauMảng kết hợp 2 chiềuÔn tập: bài tập lưới đơn giản7Làm việc với ngày và giờ
Hàm 'date()'Dấu thời gian Unix với 'time()'Giới thiệu về đối tượng DateTimeĐịnh dạng đối tượng DateTimeChỉnh sửa đối tượng DateTimeÔn tập: Tính toán ngày10Thử thách cuối cùng
Thử thách: Kiểm tra chuỗi đối xứngThử thách: Tần suất ký tựThử thách: Tổng tiền giỏ hàngThử thách: Lọc phần tử duy nhất2Thao tác nâng cao với mảng
Thêm phần tử bằng 'array_push'Xóa phần tử bằng 'array_pop'Thêm phần tử vào đầu mảng bằng 'array_unshift'Xóa phần tử đầu mảng bằng 'array_shift'Gộp các mảng được đánh chỉ sốGộp các mảng kết hợpTrích xuất phần tử bằng 'array_slice'Kiểm tra giá trị bằng 'in_array'Tìm khóa bằng 'array_search'Ôn tập: bài tập về danh sách phát3Sắp xếp mảng
Sắp xếp mảng có chỉ số tăng dầnSắp xếp mảng có chỉ số giảm dầnSắp xếp mảng kết hợp theo giá trịSắp xếp mảng kết hợp theo khóaSắp xếp theo thứ tự tự nhiênSắp xếp tùy chỉnh bằng 'usort'Ôn tập: Sắp xếp bảng xếp hạngTự luyện tập: Trình biên dịch PHP online