字符串筛选排序

标题:字符串筛选排序 | 时间限制:1秒 | 内存限制:32768K | 语言限制:不限
输入一个由n个大小写字母组成的字符串,按照Ascii码值从小到大的排序规则,查找字符串中第k个最小ascii码值的字母(k>=1),输出该字母所在字符串的位置索引(字符串的第一个字符位置索引为0)。
k如果大于字符串长度,则输出最大ascii值的字母所在字符串的位置索引,如果有重复的字母,则输出字母的最小位置索引。



#include <iostream>
#include <string>
#include <algorithm>
using namespace std;



int main()
{
    string str;
    int k;
    getline(cin,str);
    cin>>k;
    int result = 0;
    string newStr = str;
    sort(newStr.begin(),newStr.end());
    int len = str.size();
    char targetCh;
    if(k < len)
    {
        targetCh = newStr[k-1];
    }
    else{
        targetCh = newStr[len-1];
    }
    result = str.find(targetCh);
    cout<<result;
    return 0;
}
#include <stdio.h>
#include <stdlib.h>

#define MAX_CHAR_NUMBER 1000

int compare(const void *a, const void *b) { return (*(char *)a - *(char *)b); }

int main() {
    char input[MAX_CHAR_NUMBER];
    int k;
    scanf("%s", input);
    scanf("%d", &k);
    int length = strlen(input);
    if(k>length){
        k=length;
    }
    char *sort;
    sort = (char *)calloc(length, sizeof(char));
    strcpy(sort, input);
    qsort(sort, length, sizeof(char), compare);
    char c = sort[k - 1];
    for (int i = 0; i < length; i++) {
        if (c == input[i]) {
            printf("%d", i);
            break;
        }
    }
    return 0;
}



全部评论
麻烦 问一下,你截图里是用什么刷的题呀
点赞 回复 分享
发布于 2023-10-16 21:09 重庆

相关推荐

点赞 评论 收藏
分享
1 2 评论
分享
牛客网
牛客企业服务