在一行中一起打印连续的字符
给定一个字符序列,打印一行中的连续字符序列,否则
将其打印在新行中。
例子:
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)