📜  在一行中一起打印连续的字符

📅  最后修改于: 2022-05-13 01:57:08.794000             🧑  作者: Mango

在一行中一起打印连续的字符

给定一个字符序列,打印一行中的连续字符序列,否则
将其打印在新行中。

例子:

Input  : ABCXYZACCD
Output : ABC
         XYZ
         A
         C
         CD

Input : ABCZYXACCD
Output: ABC
        ZYX
        A
        C
        CD

这个想法是从左到右遍历字符串。对于每个遍历的字符,如果它与前一个连续,则将其打印在一行中,否则打印一个新行字符。

C++
// C++ program to print consecutive characters
// together in a line.
#include 
using namespace std;
 
void print(string str)
{
    cout << str[0];
    for (int i=1; str[i]!='\0'; i++)
    {
        if ((str[i] == str[i-1]+1) ||
            (str[i] == str[i-1]-1))
            cout << str[i];
        else
            cout << "\n" << str[i];;
    }
}
 
// Driver code
int main()
{
    string str = "ABCXYZACCD";
    print(str);
    return 0;
}


Java
// Java program to print consecutive characters
// together in a line.
class GFG {
 
    static void print(String str1) {
        char str[] = str1.toCharArray();
        System.out.print(str[0]);
        for (int i = 1; i < str.length; i++) {
            if ((str[i] == str[i - 1] + 1)
                    || (str[i] == str[i - 1] - 1)) {
                System.out.print(str[i]);
            } else {
                System.out.print("\n" + str[i]);
            }
        }
    }
 
// Driver code
    public static void main(String[] args) {
        String str = "ABCXYZACCD";
        print(str);
    }
}
 
// This code is contributed by 29AjayKumar


Python3
# Python3 program to print consecutive characters
# together in a line.
def _print(string):
    print(string[0], end = "")
 
    for i in range(1, len(string)):
        if (ord(string[i]) == ord(string[i - 1]) + 1 or
            ord(string[i]) == ord(string[i - 1]) - 1):
            print(string[i], end = "")
        else:
            print()
            print(string[i], end = "")
 
# Driver Code
if __name__ == "__main__":
 
    string = "ABCXYZACCD"
    _print(string)
 
# This code is contributed by
# sanjeev2552


C#
// C# program to print consecutive characters
// together in a line.
using System;
 
class GFG
{
 
    static void print(String str1)
    {
        char []str = str1.ToCharArray();
        Console.Write(str[0]);
        for (int i = 1; i < str.Length; i++)
        {
            if ((str[i] == str[i - 1] + 1)
                    || (str[i] == str[i - 1] - 1))
            {
                Console.Write(str[i]);
            }
            else
            {
                Console.Write("\n" + str[i]);
            }
        }
    }
 
    // Driver code
    public static void Main()
    {
        String str = "ABCXYZACCD";
        print(str);
    }
}
 
// This code is contributed by PrinciRaj1992


Javascript


输出:

ABC
XYZ
A
C
CD

时间复杂度: O(n)