首页 > 试题广场 >

找到指定类型的新类型字符

[编程题]找到指定类型的新类型字符
  • 热度指数:1439 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
      新类型字符的定义如下:
      1.新类型字符是长度为1或者2的字符串。
      2. 表现形式可以仅是小写字母,例如,"e"; 也可以是大写字母+小写字母,例如,"Ab";还可以是大写字母+大写字母,例如,"DC"。
      现在给定一个字符串str, str 一定是若干新类型字符 正确组合的结果。比如"eaCCBi",由新类型字符"e"、"a”、"CC"和"Bi"拼成。 再给定一个整数k,代表str中的位置。请返回第k个位置的新类型字符。


输入描述:
输入包含两行,第一行两个整数n,kn代表字符串str的长度,第二行包含一个字符串,代表字符串str。


输出描述:
输出包含一个被k位置指定的新型字符。
示例1

输入

11 7
aaABCDEcBCg

输出

Ec

备注:
时间复杂度,空间复杂度
#include <stdio.h>
#include <ctype.h>

int main(void) {
    int n, k, upper_num = 0;
    char *str;
    scanf("%d%d", &n, &k);
    str = (char *) malloc(n + 1);
    scanf("%s", str);
    for (int i = k - 1; i >= 0; i--) {
        if (islower(str[i])) {
            break;
        }
        upper_num++;
    }
    if (upper_num & 1 == 1) {
        printf("%c%c\n", str[k - 1], str[k]);
    } else if (isupper(str[k])) {
        printf("%c%c\n", str[k], str[k + 1]);
    } else {
        printf("%c\n", str[k]);
    }
    free(str);
    return 0;
}

发表于 2022-02-11 21:32:46 回复(0)

问题信息

上传者:小小
难度:
1条回答 3556浏览

热门推荐

通过挑战的用户

查看代码