Java 中垂直打印字符串的程序

17 Mar 2025 | 4 分钟阅读

描述:您有一个字符串,需要将其字符垂直打印,从字符串的左侧开始。

字符数组可以称为字符串。在这种情况下,程序用于垂直打印字母,从字符串的左侧开始向右移动。字符串的字符每行打印一个。例如,字符串“ABC”包含三个字母(或字符)“A”、“B”和“C”。现在,这个字母将以三个不同的垂直行打印,如下所示:

小写字母将被转换为大写字母,然后打印大写字母。为了以这种方式打印字符,首先可以通过其各自的索引位置(索引从 0 开始)来访问每个字符。如果文本是小写,则会以大写形式打印,并且在打印每个字符后,光标应移至下一行,以便下一个字符可以再次打印。通过重复此技术将达到字符串的最后一个字符。

算法

示例

输出

Program to print a string in vertical in Java

时间复杂度:此程序的时间复杂度为 O(n),其中 n 是字符串中的字符数。

空间复杂度:此程序的花费空间为 O(n),其中 n 是字符串的字符数。

以垂直之字形方式打印字符串

当给定一个大小为 N 的字符串 S 和一个行数 R 时,任务是以给定的行数以垂直之字形模式打印 S,如下图所示。

方法:目标是确定主列之间的距离以及中间列的步长值,以便在到达字符串的最后一个字符之前打印空格。要解决此问题,请遵循以下方法:

  • 将一个变量 interval 定义为 2*R-2,用于存储主列之间的间距。
  • 使用变量 i[0, R-1] 的范围内进行迭代
    • 将变量 step 初始化为 interval-2*i,用于存储每一行的步长值。
    • 使用变量 j[i, N-1] 的范围内进行迭代,每次迭代将 j 增加 interval
      • 打印字符 S[j]
      • 如果 step 的值在 [1, interval-1] 的范围内蔓延,并且 step+j<N,则打印 (interval-R-i) 个空格,然后打印 s[j+step],最后打印 (i-1) 个空格
      • 否则打印 (interval-R) 个空格。
    • 在外层循环的每次迭代后打印换行符。

以上方法的实现如下:

Java 程序代码

输出

Program to print a string in vertical in Java

时间复杂度: O(R2*N)

辅助空间: O(1)