简单的算法编程题

1、判断1到100的素数

def search_prime():
    for n in range(1,100):
        if n == 1 or n==2:
            yield n
        else:
            for m in range(2,n):
                if n%m == 0:
                    break
            else:
                yield n


for item in search_prime():
    print item

2、递归相加:1 + (1+2)+(1+2+3)+......(1+2+3.......n)

 


def recu_add(n):
    if n == 1:
        return 1
    return recu_add(n-1) + n*(n+1)/2

print recu_add(3)

3、字符串翻转

def reverse_word(string):
    str_list = list(string)
    for i,j in zip(range(len(str_list)/2),range(len(str_list)-1,0,-1)):
        str_list[i],str_list[j] = str_list[j],str_list[i]
    return ''.join(str_list)

 

4、IPV4地址转换为整数:

def ip_to_int(ip):
    ip_list = map(lambda item : int(item),ip.split('.')[::-1])
    sum = 0
    for index,item in enumerate(ip_list):
        sum += item<<8*index
    return sum


print ip_to_int('192.168.199.1')

5、判断字符串是否为回文字符串。

回文字符串,其实就是类似,上海自来水来自海上,前后念是一样一样的。

ef isPalind(string):
    start,end = 0,len(string) - 1
    while start < end:
        if string[start] != string[end]:
            return False
        start += 1
        end -= 1
    return True

 

6、取出字符串的最大回文字符串

分两种情况,最长回文是基数个和偶数个。

 

def longest_palind_in_string(string):
    if len(string) == 1:
        return string,1
    if not string:
        return ''
    longest_palind = ''
    for center in range(1,len(string)):
        #最长回文长度是偶数
        start,end = center-1 ,center
        #最大回文长度是基数
        start,end = center-1 ,center+1
        while start>=0 and end <= len(string) - 1:
            if string[start] != string[end]:
                break
            longest_palind = string[start:end+1]
            start -= 1
            end += 1

    return longest_palind
            

print longest_palind_in_string('adbcbw')

7、把乘法口诀按三角形打出来。

def mul_table():
    for i in range(1,10):
        for j in range(1,i+1):
            print '{0}*{1}={2}'.format(i,j,i*j),
        print '\n'

8、打印三角形,如下:

1 *
2 **
3 ***
4 ****
5 *****
6 ******
7 *******
8 ********
9 *********
10 **********

 

我就是想把python中的一种特性写出来:

1 *
2 **
3 ***
4 ****
5 *****
6 ******
7 *******
8 ********
9 *********
10 **********

即变量*个数,即复制变量,引用还是相同。

 

--------EOF---------
微信分享/微信扫码阅读