Допустим, ваш массив букв выглядит так: «ABCDEFGH». У вас есть три индекса (i, j, k), указывающие, какие буквы вы собираетесь использовать для текущего слова. Вы начинаете с:
A B C D E F G H ^ ^ ^ i j k
Сначала вы меняете k, поэтому следующий шаг выглядит так: :
A B C D E F G H ^ ^ ^ i j k
Если вы достигли конца, вы продолжаете и меняете j, а затем k.
A B C D E F G H ^ ^ ^ i j k A B C D E F G H ^ ^ ^ i j k
Как только вы достигнете G, вы также начнете меняться.
A B C D E F G H ^ ^ ^ i j k A B C D E F G H ^ ^ ^ i j k ...
Написанный в коде, это выглядит примерно так
void print_combinations(const char *string)
{
int i, j, k;
int len = strlen(string);
for (i = 0; i < len - 2; i++)
{
for (j = i + 1; j < len - 1; j++)
{
for (k = j + 1; k < len; k++)
printf("%c%c%c\n", string[i], string[j], string[k]);
}
}
}
Неприятный вопрос!
Запрос WHOIS не работает в ряде случаев: общие серверы, Akamai или другие CDN, домены, не связанные с компанией, и т. Д. Я работаю в веб-агентстве. и я могу сказать вам как факт, что большой (двузначный) процент компаний не заботится о владении всеми своими доменными именами - они позволяют веб-агентству заниматься этим, особенно в отношении небольших рекламных сайтов.
Мой лучший совет был бы таким. Получите домашнюю страницу или карту сайта, если таковая имеется. Ищите символ авторского права. Это может быть в ограниченном количестве форм: «& copy;», «(c)», «©». Также форма отчета обычно либо «компания (c) год», либо «(c) год компании». Отсюда вы можете получить компанию.
Это не сработает во всех случаях, но, вероятно, это ваш лучший вариант.
2) Думаю, пункт 2 невозможен. заголовок страницы не всегда содержит название компании. а другие элементы могут быть в другом месте на странице (если действительно есть тег с названием компании, а не только изображение). Интернет слишком динамичен для такого поиска.
3) действительно ли существует страница компании без соответствующей записи whois? есть много доменов от частных лиц (без названия компании). например, блог на собственном домене. вы найдете имя зарегистрированного человека в whois, но не знаете, является ли этот человек автором страницы.
зачем вам такая услуга, а не только имя домена?
Я бы совмещал предложение Sklivvz, по крайней мере, с проверкой тега заголовка и, если возможно, с записями Whois.
Если вы проанализируете уведомление об авторских правах на stackoverflow.com, вы либо получите «stackoverflow.com» или "stackoverflow.com LLC", и это не имеет значения.
В примере с maxmind.com, если вы проанализируете юридическое уведомление, "Copyright © 2009 MaxMind, Inc." вы либо получите "MaxMind", либо "MaxMind, Inc.", если вы объедините с тегом заголовка "Геолокация и предотвращение онлайн-мошенничества от MaxMind", единственное слово, которое появляется в обоих местах, - это MaxMind.
Также domaintools.com разбивает доменное имя на слова (хотя каждый может его изменить), вы можете проанализировать эту страницу и получить «настоящее» имя, некоторые примеры:
http://whois.domaintools.com/maxmind.com = Max Mind
http://whois.domaintools.com/dabbledb.com = Dabble Db
http://whois.domaintools.com/domaintools.com = Domain Tools
http://whois.domaintools.com/stackoverflow.com = Stack Overflow
http://whois.domaintools.com/joelonsoftware.com = Joel On Software
aboutus. org также может быть очень хорошей ссылкой, если она доступна:
http://aboutus.org/maxmind.com = MaxMind LLC
http://aboutus.org/dabbledb.com = ...
http://aboutus.org/domaintools.com = DomainTools.com
http://aboutus.org/stackoverflow.com = Stack Overflow AG
http://aboutus.org/joelonsoftware.com = Fog Creek Software Inc.