Я использовал ответ, который начинался с
/// <summary> and it mostly worked:
//for some reason Visual Studio 2010 did not understand AddressFamily.Inernetwork
if (address.Address.AddressFamily != AddressFamily.InterNetwork)
Я должен был использовать:
if(address.Address.AddressFamily != System.Net.Sockets.AddressFamily.InterNetwork)
, но я фактически использовал:
if(!address.Address.AddressFamily.Equals(System.Net.Sockets.AddressFamily.InterNetwork))
Также Добавлено:
if (network.OperationalStatus != OperationalStatus.Up)
continue;
Поскольку были некоторые сети, которые не работали и никогда не должны были там, я видел, что они были в реестре. --- Элвин
def ispalindrome(word):
if len(word) < 2: return True
if word[0] != word[-1]: return False
return ispalindrome(word[1:-1])
And here is the best one liner
def ispalindrome(word):
return word == word[::-1]
С точки зрения общего алгоритма рекурсивная функция имеет 3 случая:
1) Осталось 0 товаров . Предмет является палиндромом по идентичности.
2) Остался 1 элемент . Предмет является палиндромом по идентичности.
3) 2 или более предмета . Удалите первый и последний элемент. Сравните. Если они совпадают, вызовите функцию на том, что осталось от строки. Если первый и последний не совпадают, элемент не является палиндромом .
Реализация самой функции предоставляется читателю в качестве упражнения :)
Если строка состоит из нуля или одной буквы, это палиндром.
Если строка имеет одинаковую первую и последнюю буквы, а остальные буквы (я думаю, что это [1: -1]
фрагмент в Python, но мой Python немного заржавел) - это палиндром, это палиндром.
Теперь напишите это как функцию палиндрома, которая принимает строку. Он вызовет сам себя.
Вот еще одна точка зрения
Палиндромная строка - это
Некоторая буква, x .
Некоторая палиндромная подстрочка.
Та же буква, ] x , повторяется.
Также обратите внимание, что вам может быть дана правильная английская фраза: «Able was I before I saw Elba». с пунктуацией. Вашему контролеру палиндрома, возможно, придется незаметно пропускать знаки препинания. Кроме того, вам, возможно, придется спокойно провести сопоставление, не рассматривая случай. Это немного сложнее.
Некоторые начальные знаки препинания. Некоторая буква, x .
Некоторая палиндромная подстрока.
Некоторая буква, x , повторяется без учета регистра. Некоторая конечная пунктуация.
И, по определению, строка нулевой длины - это палиндром. Также однобуквенная строка (после удаления знаков препинания) является палиндромом.
Поскольку мы все равно публикуем код, а однострочный текст еще не опубликован, вот:
def palindrome(s):
return len(s) < 2 or s[0] == s[-1] and palindrome(s[1:-1])
Функция должна ожидать строку. Если в строке больше одной буквы, сравните первую и последнюю букву. Если 1 или 0 букв, вернуть истину. Если две буквы равны, вызовите функцию снова со строкой без первой и последней буквы. Если они не равны, верните false.
palindrom( word):
IF length of word 1 or 0 THEN
return 0;
IF last and first letter equal THEN
word := remove first and last letter of word;
palindrom( word);
ELSE
return false;
Вот способ придумать простые рекурсивные функции ... переверните проблему и подумайте о ней таким же образом. Как сделать палиндром рекурсивно? Вот как бы я это сделал ...
def make_palindrome():
maybe:
return ""
elsemaybe:
return some_char()
else:
c = some_char()
return c + make_palindrome() + c
Тогда вы можете перевернуть его, чтобы построить тест.
n=raw_input("Enter a number===>")
n=str(n)
l=len(n)
s=""
for i in range(1,l+1):
s=s+n[l-i]
if s==n:
print "Given number is polindrom"
else:
print "Given number is not polindrom"