• 6 寻找比目标字母大的最小字母


    6 寻找比目标字母大的最小字母

    作者: Turbo时间限制: 1S章节: 课程设计

    问题描述 :

    给你一个排序后的字符列表 letters ,列表中只包含小写英文字母。另给出一个目标字母 target,请你寻找在这一有序列表里比目标字母大的最小字母。

    在比较时,字母看成是依序循环出现的。即:如果目标字母大于等于letters中最后一个字符,则返回第0个字符。

    举个例子:

    如果目标字母 target = 'z' ,字符列表为 letters = ['a', 'b'],则答案返回 'a'

    示例 1:

    输入: 

    3

    c f j

    a

    输出: c

    示例 2:

    输入:

    3

    c f j

    c

    输出: f

    示例 3:

    输入: 

    3

    c f j

    d

    输出: f

    输入说明 :

    输入三行:

    第一行输入一个整数n表示数组的长度。

    第二行输入n个小写英文字母表示数组letters的元素。

    第三行输入一个小写英文字母表示目标字符target.

    提示:

        2 <= n <= 10^4

        letters[i] 是一个小写字母

        letters 按非递减顺序排序

        letters 最少包含两个不同的字母

        target 是一个小写字母

    输出说明 :

    输出一个字符表示结果。

    输入范例 :


    a b c
    a

    --------------

    输出范例 :

    b

    1. #include<iostream>
    2. using namespace std;
    3. int main()
    4. {
    5. char arr[100000];
    6. int n = 0;
    7. cin >> n;
    8. for (int i = 0; i < n; i++)
    9. {
    10. cin >> arr[i];
    11. }
    12. char target;
    13. cin >> target;
    14. if (target == arr[n - 1])
    15. {
    16. cout << arr[0];
    17. }
    18. else if (target == arr[0]&&arr[1]!=arr[0])
    19. {
    20. cout << arr[1];
    21. }
    22. else
    23. {
    24. for (int i = 0; i < n; i++)
    25. {
    26. if (arr[i] > target)
    27. {
    28. cout << arr[i];
    29. return 0;
    30. }
    31. }
    32. cout << arr[0];
    33. }
    34. return 0;
    35. }

  • 相关阅读:
    NOA高歌猛进,智驾地图何去何从?
    SpringCloud-5-基础工程-创建服务服务消费者
    Ubuntu关闭休眠模式
    电脑如何录屏?推荐3个方法
    【云计算学习笔记】Docker(一)
    ant design pro v5 之统一错误处理
    【工具门户】Linux平台安装Backstage(二)
    .NET BackgroundWorker
    数据结构.多项式加法
    Java核心知识经典面试题来啦(基础语法篇)
  • 原文地址:https://blog.csdn.net/Ultravioletrays/article/details/125524569