close
內容
Group reversing a string means reversing a string by groups.
以下為範例
"TOBENUMBERONEWEMEETAGAINANDAGAINUNDERBLUEICPCSKY"
此字串長度為48,假設我們把該字串分成8個長度為6的群組,對每個群組內的字串分別做反轉,會得到另一個新字串:
"UNEBOTNOREBMEEMEWENIAGATAGADNAEDNUNIIEULBRYKSCPC"
此行為就稱為Group reversing。
給定群組數目及字串,請你分組反轉字串。
輸入說明
每行包含一個整數G (G < 10),表示群組數,當G為0代表輸入結束
接著是一個字符串,其長度為G的倍數。
字符串長度不大於100。
字符串僅包含英文字母。
輸出說明
對於每一行輸入,輸出此字符串的Group reversing。
範例輸入 #1
3 ABCEHSHSH 5 FAOETASINAHGRIONATWONOQAONARIO 0
範例輸出 #1
CBASHEHSH ATEOAFGHANISTANOIRAQONOWOIRANO
C++:
//3 ABCEHSHSH //s.strsub取字串string中位置為pos開始的len個字元,返回一個字串。 #include <iostream> #include <string> #include <algorithm> using namespace std; int main(){ int n,len; string s="",ans; while(cin>>n) { if(n==0)break; cin>>s; //cout<<s<<'\n'; ans=""; len = s.size()/n; for(int i=0;i<s.size();i+=len){ string s1=s.substr(i,len); //C++ string.strsub(抓取開頭,要抓取多長) 返回一個字串 reverse(s1.begin(),s1.end()); //C++ reverse(反轉開頭,反轉結尾) ans+=s1; } cout<<ans<<"\n"; } return 0; }
python:
# 3 ABCEHSHSH while True: try: n,s=map(str,input().split()) n=int(n) #print(n) #print(s) ans="" len_s=len(s)//n for i in range(0,len(s),len_s): #print(i) s1=s[i:i+len_s] #print(s1) s1=s1[::-1] #print(s1) #s1.reverse() ans+=s1 print(ans) except:break
文章標籤
全站熱搜
留言列表