在C++中做一个场景问题,我不确定如何处理布尔和if循环
Doing a scenario problem in C++ and am unsure of how to proceed with boolean and if-loops
**这是一个翻译,写得很匆忙。如果你需要任何澄清,请发表评论。
给出的问题是:我们生活在一个垃圾太多的世界里。我们已经找到了压缩垃圾的方法,但只能用特定的方式来压缩,否则垃圾就会爆炸。垃圾必须排成一行,并且只能与邻居一起压缩,并且只有当邻居的值与其相同时。
第一个输入是int N,它表示行中的垃圾量。第二个输入是t,它必须有与N中的值一样多的字符输入。如果整个东西能够被压缩,直到只剩下1个垃圾(t(,那么输出将是"YES"。
我们已经发现,只要N==1,或者t中的所有输入(所有字符(都相同,输出就会是YES。
示例输入/输出:
Input:
2
1 1
Output:
YES
或
Input:
3
1 2 1
Output:
NO
或
Input:
1
5
Output:
YES
到目前为止,我们得到的是:
#include <iostream>
#include <string>
using namespace std;
int N;
string t;
bool allCharactersSame(string s)
{
int n = s.length();
for (int i = 1; i < n; i++) {
if (s[i] != s[0])
return false;
}
return true;
}
int main()
{
cin>>N;
cin >> t;
if (N == 1)
{
cout << "YES";
}
else if (allCharactersSame(t))
{
cout <<"YES";
}
else
{
cout<<"NO";
}
}
这个问题是不管怎样它都会输出YES,我们认为这是因为它考虑了输入的空白。如果我们不包括空格,它会很好。但问题是,我们必须有空间来分隔我们的输入。所以,我们被难住了。有什么建议吗?
(我无法发表评论,因此我将此作为答案编写。(
还有一些其他的问题比你想象的要严重,因为问题中的代码可以正常工作。当我给它输入"5 11111"时,它说"是",当我给他输入"5 12345"时,他说"否"。
Kai的第一条评论有点奇怪,当确定字符串中的所有字符是否相同时,将每个字符与第一个字符进行比较就足够了,就像在allCharactersSame((方法中一样。
我建议您在提供的输入上添加一些检查;如果给定的N与给定字符串的长度不匹配,程序可能会注意到。现在,例如输入"3a"表示"是"。
相关文章:
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 为什么我们不编写可以处理C++标识符的汇编器和链接器?
- 不确定如何装饰我的C++库代码以在 C 中使用
- C++功能泄漏内存,我是C++新手,不确定如何解决
- "错误 C0000:语法错误,令牌"<EOF>"处出现意外$end,并且不确定
- 代码在 CodeSignal 中工作不正确。不确定这是否是我的代码缺陷
- 为什么以下代码是不确定的?
- GTK C++:找不到信号处理程序 您是否使用 -rdynamic 进行了编译?
- 编译错误:"lvalue required as left operand of assignment" 不确定原因
- 误用指针会产生分段错误。我仍然不确定如何纠正它
- 我不确定为什么代码没有运行,它在编译时抛出错误,说它无法找到 PrintArray()
- 不确定出了什么问题(字符串输入)
- C++睡眠时间不确定
- 在C++中做一个场景问题,我不确定如何处理布尔和if循环
- 代码输出随机符号,我不确定出了什么问题
- 可变值变化,不确定原因
- 有没有办法让C++从 cin 中接收不确定数量的字符串?
- c++如何处理不确定类型的argu
- Opengl/glsl 尝试编写用于绘制四边形的着色器,但不确定如何处理屏幕纵横比的变化
- 什么是C++中的不确定行为?它与未定义的行为有何不同