如果用户输入的公式适合条款,我的程序应该在屏幕上打印一条消息(你只能使用数字和字母,你不能以'('开头,就像数学公式一样,对于每个左括号,都有成为一个合适的(并且在正确的位置)右括号。
这里有一些程序应该接受并打印的公式:
真的-
- 一个(aa(a)aaa(aa(a)aa)aa)aaaaa
- 一种(((())))
这里有一些程序不应该接受和打印的公式:
错误的-
- ()()()
- )()()(
但程序总是打印 False 感谢您的帮助 继承代码:编辑
bool IsNumeric(char character)
{
return "0123456789".Contains(character);
// or return Char.IsNumber(character);
}
bool IsLetter(char character)
{
return "ABCDEFGHIJKLMNOPQRSTUVWXWZabcdefghigjklmnopqrstuvwxyz".Contains(character);
}
bool IsRecognized(char character)
{
return IsBracket(character) | IsNumeric(character) | IsLetter(character);
}
public bool IsValidInput(string input)
{
if (String.IsNullOrEmpty(input) || IsBracket(input[0]))
{
return false;
}
var bracketsCounter = 0;
for (var i = 0; i < input.Length; i++)
{
var character = input[i];
if (!IsRecognized(character))
{
return false;
}
if (IsBracket(character))
{
if (character == '(')
bracketsCounter++;
if (character == ')')
bracketsCounter--;
}
}
if (bracketsCounter > 0)
{
return false;
}
return bracketsCounter==0;
}
}
}