在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 = "nhooo";
   int n = 4;
   cout<<n<<" Line wave pattern '"<<str<<"' is:\n";
   printWavePattern(str, n);
}

输出结果

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