尋找比目標字母大的最小字母(YYOJ)

2021-10-04 07:38:09 字數 1124 閱讀 6596

題目描述

lzy又來搞字串了,他現在給你乙個只包含小寫字母的有序字串str 和乙個目標字母 target,尋找有序陣列裡面比目標字母大的最小字母。 裡字母的順序是迴圈的。舉個例子,如果目標字母target = 『z』 並且有序字串為「ab」,則答案返回 'a』。

輸入

測試樣例由多組測試資料組成。每組測試資料第一行輸入乙個字串str ( 1 <= str.length <= 2600000 )和乙份目標字元 c ( 『a』 <= c <= 『z』 )

輸出

輸出尋找到的比目標字母大的最小字母

樣例輸入

cfj a

cfj c

cfj j

樣例輸出c

fc提示

由於資料過大,建議使用scanf,printf進行輸入輸出

ac**

#include

using

namespace std;

intmain()

else}if

(flag ==

0)cout << s[0]

<< endl;

else cout << b << endl;

}return0;

}

思路

一開始為b賦值為最大的 『 z 』 ,每次將頭尾和除以二為mid,並判斷是s[mid]是否小於b,如果小於改變b的值。

flag用來判斷是否找到比輸入的字元a大。

超時**

#include

using

namespace std;

intmain()

if(str[mid]

>i)

if(str[mid]

(flag==1)

break;}

if(flag==0)

cout<<}return0;

}

尋找比目標字母大的最小字母

給定乙個只包含小寫字母的有序陣列letters 和乙個目標字母 target,尋找有序陣列裡面比目標字母大的最小字母。陣列裡字母的順序是迴圈的。舉個例子,如果目標字母target z 並且有序陣列為 letters a b 則答案返回 a 示例 輸入 letters c f j target a 輸...

153 尋找比目標字母大的最小字母

給定乙個只包含小寫字母的有序陣列letters 和乙個目標字母 target,尋找有序陣列裡面比目標字母大的最小字母。陣列裡字母的順序是迴圈的。舉個例子,如果目標字母target z 並且有序陣列為 letters a b 則答案返回 a 示例 輸入 letters c f j target a 輸...

744 尋找比目標字母大的最小字母

給定乙個只包含小寫字母的有序陣列letters和乙個目標字母target,尋找有序陣列裡面比目標字母大的最小字母。陣列裡字母的順序是迴圈的。舉個例子,如果目標字母target z 並且有序陣列為letters a b 則答案返回 a 輸入 letters c f j target a 輸出 c 輸入...