題目描述
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 輸入...