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

 

arrow
arrow
    創作者介紹
    創作者 趴趴熊日常 的頭像
    趴趴熊日常

    資工趴趴熊的小天地

    趴趴熊日常 發表在 痞客邦 留言(0) 人氣()