分享一个做PAT乙级字符串题目的小技巧

其实这个小技巧很多人应该都知道,就是在做字符串处理的时候可以将输入串映射到128*4字节大小的int数组里,然后用输入得到的字符的ascii码值作为索引进行哈希,数组值可以存储当前字符出现的次数,也可以用作别的用途,具体看题目要求。

这个方法非常好用,下面举一个小栗子

1042 字符统计 (20 分)

题目传送门 https://pintia.cn/problem-sets/994805260223102976/problems/994805280817135616

#include 
#include 
#include 
using namespace std;

#define MAXSIZE 128

int ascii[MAXSIZE] = {0};

int main(){
    char a;
    a = getchar();
    while(a != '\n'){
        if((a >= 'A' && a<= 'Z' )|| (a >= 'a' && a<= 'z')){
            if(a >= 'A' && a <= 'Z'){
                a += 32;    //变成小写
            }
            ascii[a]++;
        }
        a = getchar();
    }
    int max = 0;
    for(int i=0; i

这个方法在PAT乙级里真实屡试不爽,嘿嘿o(* ̄︶ ̄*)o

你可能感兴趣的:(OJ题)