Я использую часть кода C # из Sanjit Prasad , чтобы решить задачу обработки обратных символов в заданной строке слов. Новая задача заключается в обработке клавиши со стрелкой влево и клавиши со стрелкой вправо в сочетании с символами возврата, отражающими «корректор» для опечаток в письменной форме.
Следующая строка представляет проблему и решение для первойвызов с использованием стека FIFO (кредиты Sanjit Prasad):
string: thiss# is a txt##ext with some typos
expected result: this is a text with some typos
Этот код для получения ожидаемого результата:
static String finalAnswer(String S)
{
Stack<Char> q = new Stack<Char>();
for (int i = 0; i < S.Length; ++i)
{
if (S[i] != '#') q.Push(S[i]);
else if (q.Count!=0) q.Pop();
}
String ans = "";
while (q.Count!=0)
{
ans += q.Pop();
}
String answer = "";
for(int j = ans.Length - 1; j >= 0; j--)
{
answer += ans[j];
}
return answer;
}
Этот код работает отлично, теперь задача состоит в том,обработать следующую строку:
string: ths#is is an te\\\#///xt wit some\\\\\h///// tpos###ypos
expected result: this is a text with some typos
В приведенной выше строке символ "\" обозначает нажатую клавишу со стрелкой влево, а "/" нажатую клавишу со стрелкой вправо.
Спасиботак что за все ваши комментарии, это мой самый первый вопрос в Stackoverflow, я хотел бы узнать подход к решению этой проблемы.