[python](6)----字符串练习题

1.字符串解析,现有一字符串,“卡巴斯基#杀毒软件#免费版#俄罗斯#”,解析出每个元素。

str = "卡巴斯基#杀毒软件#免费版#俄罗斯#"
str = str[:-1]
print(str.split("#"))

2."那车水马龙的人世间,那样地来 那样地去,太匆忙"最后一次出现"那"的位置。

str = "那车水马龙的人世间,那样地来 那样地去,太匆忙"
index = str.rfind("那")
print(index)

3.判断输入的字符串是否是 .py 结束

s=str(input("请输入字符串:"))
if s[-3:] ==".py":
    print("YES")
else:
    print("NO")

4.有一身份证号,判断此为男还是女,基于此方法,写一个算法,判断一个身份证号为男还是女。(身份证分15位和18位)

def is_man(idcard):
    if len(idcard)==18:
        return True if int(idcard[-2])%2 !=0 else False
    if len(idcard)==15:
        return True if int(idcard[-1])%2 != 0 else False
b = is_man("123456789123455")
print(b)

5.有如下格式的字符串name-age-sex-address,解析出姓名,年龄等信息。

a = "name-age-sex-address"
aa = a.split("-")
print(aa)

6.求出字符串中有多少种字符,以及每个字符的个数
static void printCharInfo(String str)
例如有字符串 str=“apple is a apple.”;
结果应该是
a:3
p:4
l:2
e:2
:3
i:1
s:1
.:1

s = "apple is a apple"
list = [str(i)for i in s]
list.sort()
print(list)
count = 0
a = list[0]
for item in list:
    if item == a:
        count+=1
    else:
        print(a,":",count)
        count = 1
        a = item
print(a,":",count)

7.去掉字符串右边的空格

str = "f g d d    "
print(str.replace(" ",""))

8.定义一个方法,将str所指字符串的正序和反序进行连接,例如 “ok”->“okko”
String concat(String str);

import operator
str = "hello"
print(str)
print(str[::-1])
print(operator.concat(str,str[::-1]))

9.字符串右移n位,例如 “hello world” 右移两位 后ldhello wor
要求写一个方法实现此功能,方法的格式是
String moveToRight(String str,int position)
str:需要移动的字符串 p:右移的位数

s = "hello world"
print(s[-3:]+s[:-2])

10.求5个字符串中最长的那个,把最长的字符串打印出来

在这里插入代码片

11.若可以从一个源字符串中, 找到一个相符的字符串(忽略大小写),

在这里插入代码片

12.判断一个字符串是否是回文

s = "qwewq"
print(s[::-1] == s)

13.如下字符串,01#张三#20-02#李四#30-03#王五#40。。。。。。,解析每个人分数多少。样式如下:
01 张三 20
02 李四 30
03 王五 40。并且计算总分。

s = "01#张三#20-02#李四#30-03#王五#40"
list1 = s.split("-")
list2 = [item.split("#")for item in list1]
print(list2)
sum = 0
for item in list2:
    sum += int(item[2])
print(sum)

14.已知字符串:“this is a test of java”. !!!
按要求执行以下操作:
(1) 统计该字符串中字母s出现的次数
(2) 取出子字符串"test"
(3) 用多种方式将本字符串复制到个字符列表中.
(4) 将字符串中每个单词的第一个字母变成大写, 输出到控制台。
(5) 用两种方式实现该字符串的倒叙输出。
(6) 将本字符串转换成一个字符串数组,要求每个数组元素都是一个有意义的额英文单词,
并输出到控制台

s = "this is a test of java"
print(s.count("s"))#(1)

15.获取一个字符串在另一个字符串中出现的次数
例如,获取"kk"在"abkkcdkkefkkskk"中出现的次数

s = "abkkcdkkefkkskk"
print(s.count("kk"))

16.获取两个字符串中最大相同子串
例如找到字符串"abcwerthelloyuiodef"和"cvhellobnm"中的最大相同字串
此题,应该从子串的长度考虑。
思路:
1,将短的那个子串按照长度递减的方式获取到。
2,将每获取到的子串去长串中判断是否包含,如果包含,已经找到!。

s1 = "abcdef"
s2 = "cdfgbcdea"
a = [[0 for i in range(len(s2)+1)] for j in range(len(s1)+1)]
max_count = 0
p = 0
for i in range(len(s1)):
    for j in range(len(s2)):
        if s1[i] == s2[j]:
            a[i+1][j+1] = a[i][j]+1
            if a[i+1][j+1] > max_count:
                max_count = a[i+1][j+1]
                p = i+1
print(s1[p-max_count:p])

你可能感兴趣的:(python)