STR03 - Đếm số lượng ký tự

Xem dạng PDF

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

Hãy đọc nội quy trước khi bình luận.



  • -2
    thangok  đã bình luận lúc 1, Tháng 4, 2024, 8:00

    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<


  • 1
    thinhec12012007__  đã bình luận lúc 15, Tháng 2, 2024, 14:17

    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)


  • -2
    thinhec12012007__  đã bình luận lúc 15, Tháng 2, 2024, 14:12

    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]]++; }

    cin>>t;
    while(t--) {
        char k;
        cin>>k;
        if(k>='A'&&k<='Z') k+=32;
    
        cout<&lt;mp[k]<<endl;
    }
    return 0;
    

    }


  • 0
    dungolduck  đã bình luận lúc 9, Tháng 2, 2024, 1:52

    để đ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


  • -1
    ngusidan123  đã bình luận lúc 13, Tháng 1, 2024, 13:58

    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++


    • 0
      hieugiangho2015  đã bình luận lúc 13, Tháng 2, 2024, 2:39

      sao ko in thường hết, rồi nhập từ muốn đếm vào cũng in thường luôn


  • 0
    Aothatday  đã bình luận lúc 7, Tháng 1, 2024, 11:34

    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)]<


  • -2
    Aothatday  đã bình luận lúc 7, Tháng 1, 2024, 11:32

    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


  • 0
    lhnhung258  đã bình luận lúc 6, Tháng 1, 2024, 16:23

    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.


  • 2
    Matkox215  đã bình luận lúc 4, Tháng 12, 2023, 3:35

    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 ạ


  • -5
    tranhoangviet2000553  đã bình luận lúc 8, Tháng 11, 2023, 4:18

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -2
    yoonicornsyndrome  đã bình luận lúc 16, Tháng 8, 2023, 5:38

    cho em hỏi test case 2 là gì ạ, em chạy mãi mà không đúng


    • -4
      garennoier  đã bình luận lúc 19, Tháng 9, 2023, 13:38

      Test la ki tu hoa


  • -44
    gkthcsyl  đã bình luận lúc 22, Tháng 7, 2023, 2:52

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.