题目描述:
小红拿到了一个字符串,她准备把这个字符串劈成两部分,使得第一部分的长度恰好是第二部分的两倍。你能帮帮她吗?
输入描述:
一个仅由小写字母组成的字符串,长度不超过10^5。
输出描述:
如果无解,请输出-1;否则输出两个字符串,用空格隔开,代表劈完了的字符串。
示例1
输入:
abc
输出:
ab c
示例2
输入:
ad
输出:
-1
解题思路:
先判断字符串能否被劈开,如果不行就输出“-1”,如果可以就将字符串按照顺序进行输出,并在特定位置在输出一次空格即可。
代码:
#include<iostream>
#include<string>
using namespace std;
int main()
{
//输入
string str;
getline(cin, str);
//判断能否劈开
if (str.length() % 3 == 0) //可以被整除
{
//传入
for (int i = 0;i < str.length();i++)
{
if (i == str.length() * 2 / 3) //在特定位置输出空格
{
cout << " ";
}
cout << str[i];
}
}
else
{
cout << "-1" << endl;
return 0;
}
system("pause");
return 0;
}#include<iostream>
#include<string>
using namespace std;
int main()
{
//输入
string str;
getline(cin, str);
//判断能否劈开
if (str.length() % 3 == 0) //可以被整除
{
//传入
for (int i = 0;i < str.length();i++)
{
if (i == str.length() * 2 / 3) //在特定位置输出空格
{
cout << " ";
}
cout << str[i];
}
}
else
{
cout << "-1" << endl;
return 0;
}
system("pause");
return 0;
}