Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift
Bé Na đang học đếm, nên bố của bé Na cho bé Na một chuỗi từ và đếm xem có bao nhiêu chữ cái ~x~ trong đó.
Bé Na đếm xong thì đọc cho bố kết quả. Nhưng bố bé Na thì đang bận dự án nên nhờ bạn viết 1 chương trình kiểm tra xem bé Na đếm có đúng hay không?
Yêu cầu: Cho chuỗi ~str~ và một chữ cái ~x~ bất kỳ, hãy đếm xem có bao nhiêu lần ký tự ~x~ xuất hiện trong chuỗi ~str~ kia. Do bé Na còn bé nên chưa phân biệt được chữ hoa và chữ thường nên bạn cũng đếm theo cách này để bố bé Na có thể sử dụng.
Input
- Dòng 1 là chuỗi ký tự ~str~
- Dòng 2 là số nguyên ~T~, số lần kiểm tra
- ~T~ dòng tiếp theo, mỗi dòng là một chữ cái ~x~ cần đếm
Giới hạn:
- ~1 \le T \le 100~
- Độ dài chuỗi ~str~ không quá 1000
- Ký tự ~x~ nằm trong bảng chữ cái tiếng Anh
Output
- Với mỗi ký tự ~x~ được yêu cầu, in ra số lần xuất hiện của chữ cái ~x~ trong chuỗi ~str~ ở các dòng tương ứng.
Sample
Input #1
Lap Trinh Khong Kho
3
k
t
m
Output #1
2
1
0
Bình luận
Bài này chuyển chuỗi thành kiểu chữ thường hết rồi chuyển luôn "x" thành kiểu thường rồi kiểm tra là full test.
include<bits/stdc++.h>
using namespace std; int main(){ iosbase::syncwith_stdio(false); cin.tie(0);cout.tie(0); string s; getline(cin,s); int t; cin>>t; while(t--){ int dem=0; char x; cin>>x; x=tolower(x); for(int i=0;i<s.length();i++){ if(x==tolower(s[i])) dem++; } cout<<dem<
Bài này ae chuyển đổi mảng về chữ thường hết, r dùng đếm phân phối , đến lúc nhập bộ test T thì ae lưu ý cũng chuyển T về chữ thường hết là AC (Do ngta có thể kt trường hợp là chữ hoa, mà nãy ae đã chuyển mảng ban đầu về chữ thường hết r)
Mn tham khảo nha :
include <bits/stdc++.h>
using namespace std; string s; int t; int mp[1001]={0}; int main() { iosbase::syncwith_stdio(false); cin.tie();cout.tie(); getline(cin,s); int tam=s.length(); for(int i=0;i<tam;i++) { if(s[i]>='A'&&s[i]<='Z') s[i]+=32; mp[s[i]]++; }
}
để đc test 2 mấy bạn phải đếm luôn cả 2 kiểu chữ hoa và thường của 1 chữ vd: HHHhhh thì h=6 và H=6, nó chỉ cần biết chữ h đc đếm mấy lần chứ không phân biệt hoa hay thường
bài này anh em tạo 2 chuỗi. chuỗi 1 chuyển từ chuỗi ban đầu về in hoa hết và chuỗi 2 chuyển từ chuỗi ban đầu về in thường hết . rồi duyệt phần tử if (x==chuoi1[i] || x==chuoi2[i]) count++
sao ko in thường hết, rồi nhập từ muốn đếm vào cũng in thường luôn
ae chỉ cần đưa hết kí tự từ xâu, nhập vào là chung kí tự thường hoặc hoa là ra :v
#include <bits/stdc++.h> using namespace std; map<char,int>mp; int main() { string s;int n,i;char x; getline(cin,s); for(i=0;i<s.size();i++)mp[tolower(s[i])]++; cin>>n; for(i=1;i<=n;i++) { cin>>x; cout<<mp[tolower(x)]<
sai test 2 :((
include <bits/stdc++.h>
using namespace std; map<char,int>mp; int main() { string s;int n,i;char x; getline(cin,s); for(i=0;i<s.size();i++)mp[tolower(s[i])]++; cin>>n; for(i=1;i<=n;i++) { cin>>x; cout<<mp[x]<
sửa kiểu gì h :v
test 2 là kí tự x có thể là hoa hoặc thường. Ví dụ string = LllL, kiểm tra số lần xuất hiện của 2 kí tự x1 = L và x2 = l, ko cẩn thận sẽ bị in ra x1 xuất hiện 8 lần, x2 8 lần.
include <iostream>
include <cstring>
include <string>
include <array>
using namespace std; string s; int l, i, t, d[27]; char x; int main() { getline(cin, s); l = s.size(); fill(d, d+26, 0); for (i = 0; i < l; i++) { if (s[i] > 96) d[s[i] - 97]++; else if (s[i]>64) d[s[i] - 65]++; } cin >> t; while (t > 0) { getchar(); cin >> x; cout << d[x - 97] << endl; t--; } return 0; } Ad chỉ em sai chỗ nào với ạ. E thử test ngẫu nhiên tự tạo đúng mà sao submit code bị sai test 2 ạ
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
cho em hỏi test case 2 là gì ạ, em chạy mãi mà không đúng
Test la ki tu hoa
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.