python 练习 - 7

注:题目来自https://www.nowcoder.com


1. 计算字符串最后一个单词的长度,单词以空格隔开。 

输入描述:

 
 

一行字符串,非空,长度小于5000。

输出描述:

 
 

整数N,最后一个单词的长度。

代码如下:

def last_word_long(s):
    k = len(s) - 1
    word_length = 0
    while s[k] != ' ' and k >= 0:
        k -= 1
        word_length += 1
    print(word_length)

s = input()
last_word_long(s)

思路:从字符串 的最后一位开始,找到一个空格,则正好遍历了最后一个单词,若k< 0, 说明未找到空格,同时已经到了字符串的开头,也就是说只有一个单词,跳出循环,打印长度。


2. 写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。

输入描述:

 
  

输入一个有字母和数字以及空格组成的字符串,和一个字符。

输出描述:

 
  

输出输入字符串中含有该字符的个数。

代码如下:

s = input()
ch = input()
s = s.lower()
k = 0
for i in range(0, len(s)):
    if (not ch.isalpha() and s[i] == ch) or (ch.isalpha() and s[i] == ch.lower()):
        k += 1
print(k)

思路:将字符串和字符转为小写(前提是字符为字母),然后遍历字符串。


3. 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。

 

 

Input Param 

     n               输入随机数的个数     

 inputArray      n个随机整数组成的数组 

     

Return Value

     OutputArray    输出处理后的随机整数

 


注:测试用例保证输入参数的正确性,答题者无需验证。测试用例不止一组


代码如下:

#import sys
while True:
    try:
       #N = sys.stdin.readline()
        N = input()

        l = []
        for i in range(0, int(N)):
            n = int(input())
            l.append(n)
        l = list(set(l))
        l.sort()
        for j in l:
            print(j)
    except:
        break

关键的问题是测试用例不止一组,最外面需要一个while循环。一开始试了好几次都不知道错位原因在哪里,实现方法用try except  当下一次摁回车时,出现错误 ,跳出循环。

猜你喜欢

转载自blog.csdn.net/jiayangwu/article/details/79768390