聲明解決問題我需要幫助的codechef
考慮的僅由小寫字母A-Z長度爲N的字符串。假設s[i]
是字符串中第i個位置的字符(從1開始)。如果存在i(1 <= i < N
)的確切K值,使得s[i+1]<s[i]
(我們假設爲'a'<'b'<'c'<...<'z'
),則該字符串是K字符串。給定K,找到最短的K字符串。如果有多種解決方案,請查找詞典上最早的K字符串。
輸入
第一行包含測試例T(1 < = T < = 100)的數目。每個測試用例都包含一個整數K(≤100)。 輸出
輸出
Ť線,一個用於每個試驗情況下,含有所需的字符串。只能使用小寫字母a-z。
我不能理解的是27到100的情況。我可以簡單地使用char數組來計算問題 這不是整個算法。我仍然在努力......
#include<iostream>
using namespace std;
int main()
{
char s[]={'0','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int k;
cin>>k;
for(int i=k;i>=1;i--)
{
//cout<<s[i+1]<<">"<<s[i];
if(s[i+1]>s[i])
cout<<s[i];
}
system("pause");
return 0;
}
這樣s [i + 1] ....句子的結尾是什麼? – 2010-09-24 15:36:06
s [i + 1]
Ronzii 2010-09-24 15:38:33