文章

17

粉丝

43

获赞

10

访问

14.5k

头像
字符串排序2 题解:
P1255 北京大学机试题
发布于2023年7月31日 10:20
阅读数 836

借鉴大佬的题解

除了原来的数组外定义了一个新数组存放比较后的字母,定义一个标识符存放该位置是不是符号。

最后输出的时候进行判断如果该位置的标识符为1 则输出源字符串的东西,如果不是则输出新字符串的东西。

自定义cmp 列举几种可能性

排序采用稳定排序

#include<bits/stdc++.h>
using namespace std;
char s1[10005];
int flag[10005]={0};
bool cmp(char a,char b)
{
    if((a>='a'&&a<='z')&&(b>='a'&&b<='z'))
    {
        return a<b;
    }
    if((a>='A'&&a<='Z')&&(b>='a'&&b<='z'))
    {
        return (a-'A')<(b-'a');
    }
    if((a>='a'&&a<='z')&&(b>='A'&&b<='Z'))
    {
        return (a-'a')<(b-'A');
    }
        if((a>='A'&&a<='Z')&&(b>='A'&&b<='Z'))
    {
        return a<b;
    }

}


int main(){
    string s;
    while(getline(cin,s))

    {
        int len=s.size();
        int cnt=0;
    for(int i=0;i<len;i++)
    {
        if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发