将字符串转换为字符的方阵网格
给定一个长度为 L 的字符串。任务是将字符串转换为网格。
例子:
Input : str = "haveaniceday"
Output : have
anic
eday
Explanation: k is the separator. If k is 4 then the output will be "have
anic
eday"
Input :str = "geeksforgeeks"
Output : geek
sfor
geek
s
注意: & l =字符串的长度
方法:
- 不使用内置函数
- 制作(行*列)大小的二维字符数组。
- 分配作为列值的值 K。
- 打印二维字符数组。
下面是上述方法的实现。
C++
#include
using namespace std;
// Function to string into grid form
void gridStr(string str)
{
int l = str.length();
int k = 0, row, column;
row = floor(sqrt(l));
column = ceil(sqrt(l));
if (row * column < l)
row = column;
char s[row][column];
// convert the string into grid
for (int i = 0; i < row; i++) {
for (int j = 0; j < column; j++) {
s[i][j] = str[k];
k++;
}
}
// Printing the grid
for (int i = 0; i < row; i++) {
for (int j = 0; j < column; j++) {
if (s[i][j] == '\0')
break;
cout << s[i][j];
}
cout << endl;
}
}
// Driver code
int main()
{
string str = "GEEKSFORGEEKS";
gridStr(str);
return 0;
}
Java
// Java implementation of the
// above approach
class GFG
{
// Function to string into grid form
static void gridStr(String str)
{
int l = str.length();
int k = 0, row, column;
row = (int) Math.floor(Math.sqrt(l));
column = (int) Math.ceil(Math.sqrt(l));
if (row * column < l)
{
row = column;
}
char s[][] = new char[row][column];
// convert the string into grid
for (int i = 0; i < row; i++)
{
for (int j = 0; j < column; j++)
{
if(k < str.length())
s[i][j] = str.charAt(k);
k++;
}
}
// Printing the grid
for (int i = 0; i < row; i++)
{
for (int j = 0; j < column; j++)
{
if (s[i][j] == 0)
{
break;
}
System.out.print(s[i][j]);
}
System.out.println("");
}
}
// Driver code
public static void main(String[] args)
{
String str = "GEEKSFORGEEKS";
gridStr(str);
}
}
//This code is contributed by Rajput-Ji
Python3
# Python3 implementation of the
# above approach
# Function to string into grid form
def function(str, k):
for i in range(len(str)):
if i %k == 0:
sub = str[i:i+k]
lst = []
for j in sub:
lst.append(j)
print(' '.join(lst))
function("GEEKSFORGEEKS", 5)
/* This code contributed by nsew1999gokulcvan */
C#
// C# implementation of the
// above approach
using System;
class GFG
{
// Function to string into grid form
static void gridStr(String str)
{
int l = str.Length;
int k = 0, row, column;
row = (int) Math.Floor(Math.Sqrt(l));
column = (int) Math.Ceiling(Math.Sqrt(l));
if (row * column < l)
{
row = column;
}
char [,]s = new char[row,column];
// convert the string into grid
for (int i = 0; i < row; i++)
{
for (int j = 0; j < column; j++)
{
if(k < str.Length)
s[i,j] = str[k];
k++;
}
}
// Printing the grid
for (int i = 0; i < row; i++)
{
for (int j = 0; j < column; j++)
{
if (s[i, j] == 0)
{
break;
}
Console.Write(s[i, j]);
}
Console.WriteLine("");
}
}
// Driver code
public static void Main()
{
String str = "GEEKSFORGEEKS";
gridStr(str);
}
}
/* This code contributed by PrinciRaj1992 */
PHP
Javascript
输出:
GEEK
SFOR
GEEK
S