public static bool IsBalanced(string input)
{
Dictionary<char, char> bracketPairs = new Dictionary<char, char>() {
{ '(', ')' },
{ '{', '}' },
{ '[', ']' },
{ '<', '>' }
};
Stack<char> brackets = new Stack<char>();
try
{
// Iterate through each character in the input string
foreach (char c in input)
{
// check if the character is one of the 'opening' brackets
if (bracketPairs.Keys.Contains(c))
{
// if yes, push to stack
brackets.Push(c);
}
else
// check if the character is one of the 'closing' brackets
if (bracketPairs.Values.Contains(c))
{
// check if the closing bracket matches the 'latest' 'opening' bracket
if (c == bracketPairs[brackets.First()])
{
brackets.Pop();
}
else
// if not, its an unbalanced string
return false;
}
else
// continue looking
continue;
}
}
catch
{
// an exception will be caught in case a closing bracket is found,
// before any opening bracket.
// that implies, the string is not balanced. Return false
return false;
}
// Ensure all brackets are closed
return brackets.Count() == 0 ? true : false;
}
Относительно установки размера буфера:
Использование режима con: cols = XX lines = YY
устанавливает не только размер окна (экрана), но и размер буфера .
Если вы укажете размер, разрешенный вашей системой, на основе доступного размера экрана, вы увидите, что размеры окна и буфера установлены на одно и то же значение; .eg:
mode con: cols=100 lines=30
приводит к следующему (значения те же):
Напротив, если вы укажете слишком большие значения в зависимости от доступного размера экрана, вы увидите, что размер окна изменится до максимального, но размер буфера изменено на указанные значения.
mode con: cols=1600 lines=900
При разрешении экрана 1280x1024 вы получите:
Относительно автозаполнения:
Завершение имен файлов и каталогов НЕ включен по умолчанию. Ты можешь включить или отключить завершение имени файла для конкретного вызова CMD.EXE с переключателем / F: ON или / F: OFF. Вы может включить или отключить завершение для все вызовы CMD.EXE на компьютер и / или сеанс входа в систему пользователя установка одного или обоих следующие значения REG_DWORD в реестр с использованием REGEDT32.EXE:
HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Command Processor \ CompletionChar HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Command Processor \ PathCompletionChar и / или HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor \ CompletionChar HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor \ PathCompletionChar
с шестнадцатеричным значением элемента управления персонаж, используемый для определенного функция (например, 0x4 - это Ctrl-D, а 0x6 это Ctrl-F). Для конкретного пользователя настройки имеют приоритет над настройки машины. Командная строка переключатели имеют приоритет над параметры реестра.
Если завершение включено с / F: переключатель ON, два элемента управления используются символы Ctrl-D для завершение имени каталога и Ctrl-F для завершения имени файла. Отключить конкретный символ завершения в реестр, используйте значение для пробела (0x20), поскольку это недопустимый элемент управления
Не удалось найти там никаких параметров истории команд (cmd /?), и похоже, что другие параметры, о которых вы спрашивали, устанавливаются исключительно через настройки реестра.
Для истинной настройки размера буфера используйте DOSKEY /LISTSIZE=size
Вы больше не можете менять цвета в оболочке, поскольку Microsoft убрала управление ANSI ESC из подсказок команд/cmd.