Дана фраза
(алгоритм - набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи по конечное число действий, система правил выполнения дискретного процесса, достигает поставленной цели за конечное время. Для визуализации алгоритмов часто используют блок-схемы)
и подстрока (алгоритм)
.
Найти все вхождения подстроки в фразу, если таковых нет, выдать сообщение. Программа должна выполнять не более N-циклов
. Где N
- необходимо ввести.
Возможна реализация на С#, С++, Java.
Я начал делать на C#.
Код:
string s1 = "алгоритм – алгоритм набір інструкцій, які описують порядок дій виконавця, щоб досягти результату розв'язання задачі за скінченну кількість дій; система правил виконання дискретного процесу, яка досягає поставленої мети за скінченний час. Для візуалізації алгоритмів часто використовують блок-схеми";
string s2 = "алгоритм";
Console.Write("Выполнить не больше: " );
int N = int.Parse(Console.ReadLine());
int i = 0;
int x = -1;
N = -1;
while (i != -1)
{
i = s1.IndexOf(s2, x + 1);
x = i;
N++;
}
Console.WriteLine("Количество вхождений слова алгоритм: " + N);
Console.ReadLine();
Не могу понять, как ограничить количество нахождений, чтобы выполнилось не более N- заданных повторений.
string s1 = "алгоритм – алгоритм набір інструкцій, які описують порядок дій виконавця, щоб досягти результату розв'язання задачі за скінченну кількість дій; система правил виконання дискретного процесу, яка досягає поставленої мети за скінченний час. Для візуалізації алгоритмів часто використовують блок-схеми";
string s2 = "алгоритм";
Console.Write("Выполнить не больше: ");
int N = int.Parse(Console.ReadLine());
int iterationsCount = -1;
int nextIndex = -999;
while (nextIndex != -1 && iterationsCount < N) {
nextIndex = s1.IndexOf(s2, nextIndex == -999 ? 0 : nextIndex + 1);
iterationsCount++;
}
Console.WriteLine("Количество вхождений слова `" + s2 + "`: " + iterationsCount);
Console.ReadLine();
Пользуйтесь регулярным выражением, очень легко определить вхождения:
public class Application {
private static final Pattern REGEX = Pattern.compile("(?ui)(алгоритм)");
private static final String TEXT = "алгоритм – алгоритм набір інструкцій, які описують порядок дій виконавця, "
+ "щоб досягти результату розв'язання задачі за скінченну кількість дій; "
+ "система правил виконання дискретного процесу, яка досягає поставленої мети за скінченний час. "
+ "Для візуалізації алгоритмів часто використовують блок-схеми.";
private static final int number = 2;
public static void main(String[] args) {
Matcher matcher = REGEX.matcher(TEXT);
int count = 0;
while (count != number && matcher.find()) {
count++;
System.out.println(matcher.group(1));
}
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем привет, нужна помощь! Есть код:
Как в CSS задать тень блоку, чтобы она была только с одной стороны? Пример: есть блок, нужно задать ему некую тень справаТень должна быть с правой...