Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 웨이브 패턴으로 문자열 인쇄


이 문제에서는 문자열과 정수 n이 제공됩니다. 우리의 임무는 주어진 문자열을 파동 패턴으로 인쇄하는 것입니다. n줄 중

문제를 이해하기 위해 예를 들어보겠습니다.

Input: Tutorial n = 3
Output:
T             r
   U       o       i       s
      t                l

웨이브 패턴은 문자열의 각 문자를 다음 줄에 하나씩 인쇄하고 다음 요소에서 n 번째 줄까지 탭 공백을 인쇄하여 인쇄합니다. 그리고 인쇄 탭은 첫 번째 줄까지 위쪽 줄에 공백을 표시하고 문자열에 문자가 포함될 때까지 동일한 패턴을 따릅니다.

예시

아래 코드는 우리 솔루션의 구현을 제공합니다.

#include<bits/stdc++.h>
using namespace std;
void printWavePattern(string s, int n) {
   if (n==1) {
      cout<<s;
      return;
   }
   int len=s.length();
   char a[len][len]={ };
   int row=0;
   bool down;
   for (int i=0; i<len; i++) {
      a[row][i]=s[i];
      if (row==n-1)
         down=false;
      else if (row==0)
         down=true;
         (down)?(row++):(row--);
   }
   for (int i=0; i<n; i++) {
      for (int j=0; j<len; j++) {
         cout<<a[i][j]<<" ";
      }
      cout<<endl;
   }
}
int main() {
   string str = "TutorialsPoint";
   int n = 4;
   cout<<n<<" Line wave pattern '"<<str<<"' is:\n";
   printWavePattern(str, n);
}

출력

4 Line wave pattern 'TutorialsPoint' is −
T    a    n
u   i l    i t
t    r    s o
   o    P