笔试刷题-拼多多2018-08-16

题目描述:(2018年遇到的秋招笔试)
把字符串str顺时针打印成正方形,保证长度是4倍数。
思路如下:
把字符串转化成顺序是字符串从左往右,从上往下打印的顺序,然后再按照逐行打印正方形的方式打印。
【笔试刷题-拼多多2018-08-16】代码如下:

#include #include #include #include using namespace std; //此时调用的word一定是长度为4倍数, k为长度的4分之一 string transformWord(string word, int k){ string newWord=word.substr(0, k+1); int i=k+1, j=4*k-1; while(i3*k){ newWord.push_back(word[j]); newWord.push_back(word[i]); i++; j--; } newWord+=word.substr(i, j-i+1); reverse(newWord.begin()+3*k-1, newWord.end()); return newWord; } int main(){ string word; cin>>word; if(word.size()%4){ return -1; } int k=word.size()/4; word=transformWord(word, k); //打印第一行 for(int cur=0; cur

    推荐阅读