ВУЗ:
Составители:
Рубрика:
44
6. По логике найти последнее слово надо перед тем, как начнем удалять
слова, т. е. перед циклом в processString. Поэтому код processString чуть
измениться:
public void processString() {
string lastWord = findLastWord();
for (int i = 0; i < str.Length; i++) {
if (isSeparator(str[i])) {
continue;
}
int len = getWordLength(i);
string word = str.Substring(i, len);
if (needDelWord(word)) {
str = str.Remove(i, len);
} else {
i = i + len;
}
}
}
7. Для того, что бы определить, нужно удалять слово или нет, надо знать
последнее слово строки. Т. е. в функцию needDelWord необходимо
добавить параметр, который будет передавать последнее слово строки.
Так же очевидно, что последнее слово строки при этом не меняется.
Поэтому код опять чуть изменится:
public void processString() {
string lastWord = findLastWord();
for (int i = 0; i < str.Length; i++) {
if (isSeparator(str[i])) {
continue;
}
int len = getWordLength(i);
string word = str.Substring(i, len);
if (needDelWord(word, lastWord)) {
str = str.Remove(i, len);
} else {
i = i + len;
}
}
}
8. Условие удаления слова, в которых есть хоть одна буква последнего
слова строки. У нас есть текущее слово и последнее слово в строке.
Если мы встретим, например, в текущем слове (для примера длиной 5
символов) во втором символе букву последнего слова, то все остальные
буквы (после текущей) просматривать не надо. Так же
очевидно, что
для определения необходимости удаления надо просмотреть все буквы
текущего слова, т. е. должен быть цикл. И сказать, что слово не надо
удалять, мы можем только после того, как просмотрим все слово, т. е.
после цикла. С учетом этих рассуждений, код примет следующий вид:
Страницы
- « первая
- ‹ предыдущая
- …
- 42
- 43
- 44
- 45
- 46
- …
- следующая ›
- последняя »