кодесурса
«C

Упражнения на C: Найти длину самой длинной подстроки в данной строке без повторяющихся символов

script1adsense2code
script1adsense3code

Практика программирования C: упражнение 2 с решением

Напишите программу на C, чтобы найти длину самой длинной подстроки данной строки без повторяющихся символов.

Код C:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
static int length_of_longest_substring(char *str1)
{
    int offset[128];
    int substr_max_len = 0;
    int len = 0;
    int index = 0;
    memset(offset, 0xff, sizeof(offset));
    while (*str1 !='\0') {
        if (offset[*str1] == -1) {
            len++;
          } 
		  else {
            if (index - offset[*str1] > len)
				{
                len++;
            } 
			else 
			{
	        len = index - offset[*str1];
            }
        }
        if (len > substr_max_len) 
		{
            substr_max_len = len;
        }
        offset[*str1++] = index++;
    }
    return substr_max_len;
}
int main(void)
 {
    char *str1 ="xyzxyzyy";
	printf("\nOriginal String: %s", str1);
	printf("\nLength of the longest substring without repeating characters: %d\n", length_of_longest_substring(str1));
	return 0;
}

Пример вывода:

 Оригинальная строка: xyzxyzyy
Длина самой длинной подстроки без повторяющихся символов: 3

Иллюстрированная презентация:

«C

Блок - схема:

«C

Решение

Внесите свой код и комментарии через Disqus.

Предыдущий: Напишите программирование на C, чтобы получить индексы двух чисел для данного массива целых чисел, так чтобы сумма двух чисел была равна определенной цели.
Далее: Напишите программу на C, чтобы найти медиану двух заданных отсортированных массивов, которые не являются пустыми.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code