zoukankan      html  css  js  c++  java
  • 笔试题目练习-python

    以下内容包含笔试练习库的题目和代码,题目来自牛客网,仅供参考。

    # coding = utf-8
    import sys
    
    
    def test1():
        """
        题目描述:计算字符串最后一个单词的长度,单词以空格隔开。
        输入描述:一行字符串,非空,长度小于5000。
        输出描述:整数N,最后一个单词的长度。
        示例1
        输入
        hello world
        输出
        5
        '''
        :return: None
        """
        str=sys.stdin.readline()
        lis = str.split()
        print(len(lis[-1]))
    
    
    def test2():
        '''
        题目描述写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
        输入描述:输入一个有字母和数字以及空格组成的字符串,和一个字符。
        输出描述:输出输入字符串中含有该字符的个数。
        示例1
        输入 ABCDEF A
        输出 1
        '''
        str1 = input().lower()
        str2 = input().lower()
        print(str1.count(str2))
    
    
    def test3():
        """
        题目描述:明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。
        Input Param
        n               输入随机数的个数
        inputArray      n个随机整数组成的数组
        Return Value
        OutputArray    输出处理后的随机整数
        注:测试用例保证输入参数的正确性,答题者无需验证。测试用例不止一组。
        输入描述:输入多行,先输入随机整数的个数,再输入相应个数的整数
        输出描述:返回多行,处理后的结果
        示例1
        输入
        11
        10
        20
        40
        32
        67
        40
        20
        89
        300
        400
        15
        输出
        10
        15
        20
        32
        40
        67
        89
        300
        400
        :return: None
        """
        # count = int(input())
        # lis = []
        # for i in range(count):
        #     tmp = int(input())
        #     lis.append(tmp)
        # lis = list(set(lis))
        # lis.sort()
        # for tmp in lis:
        #     print(tmp)
        #
        while True:
            try:
                num = []
                n = int(input())
                for i in range(n):
                    tmp = int(input())
                    if tmp not in num:
                        num.append(tmp)
                num.sort()
                for i in num:
                    print(i)
            except:
                break
        # import sys
        # while True:
        #     try:
        #         numbers = []
        #         n = int(sys.stdin.readline().strip())
        #         for i in range(n):
        #             numbers.append(int(sys.stdin.readline().strip()))
        #         numbers.sort()
        #         temp = []
        #         for i in numbers:
        #             if i not in temp:
        #                 temp.append(i)
        #         for i in temp:
        #             print(i)
        #     except:
        #         break
        while True:
            try:
                numbers = []
                n = int(input().strip())
                for i in range(n):
                    tmp = int(input().strip())
                    if tmp not in numbers:
                        numbers.append(tmp)
                # numbers = list(set(numbers))
                numbers.sort()
                for i in numbers:
                    print(i)
            except:
                break
    
    
    def test3():
        """
        题目描述
        •连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
        •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
        输入描述:
        连续输入字符串(输入2次,每个字符串长度小于100)
        输出描述:输出到长度为8的新字符串数组
        示例1
        输入
        abc
        123456789
        输出
        abc00000
        12345678
        90000000
        :return: None
        """
        while True:
            try:
                strs = []
                for i in range(2):
                    strs.append(input())
                for s in strs:
                    while len(s) >= 8:
                        print(s[:8])
                        s = s[8:]
                    if 0 < len(s) < 8:
                        print(s + '0' * (8 - len(s)))
            except:
                break
    
    
    def test4():
        """
        题目描述
        写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
        输入描述:
        输入一个十六进制的数值字符串。
        输出描述:
        输出该数值的十进制字符串。
        示例1
        输入
        0xA
        输出
        10
        :return:
        """
        while True:
            try:
                h = input()
                if len(h) > 0:
                    print(int(h, 16))
            except:
                break
    
    
    def test5():
        """
        题目描述
        功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )
        最后一个数后面也要有空格
        详细描述:
        函数接口说明:
        public String getResult(long ulDataInput)
        输入参数:
        long ulDataInput:输入的正整数
        返回值:
        String
        输入描述:
        输入一个long型整数
        输出描述:
        按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。
        示例1
        输入
        180
        输出
        2 2 3 3 5
        :return:
        """
        while True:
            try:
                l = int(input())
                i = 2
                while l != 1:
                    if l%i == 0:
                        print(i, end=' ')
                        l = l/i
                    else:
                        i+=1
            except:
                break
    
    
    def test6():
        """
        题目描述
        写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。
        输入描述:
        输入一个正浮点数值
        输出描述:
        输出该数值的近似整数值
        示例1
        输入
        复制
        5.5
        输出
        复制
        6
        :return:
        """
        while True:
            try:
                f = float(input())
                f += 0.5
                print(int(f))
            except:
                break
    
    
    def test7():
        """
        数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
        题目描述
        数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
        输入描述:
        先输入键值对的个数
        然后输入成对的index和value值,以空格隔开
        输出描述:
        输出合并后的键值对(多行)
        示例1
        输入
        4
        0 1
        0 2
        1 2
        3 4
        输出
        0 3
        1 2
        3 4
        :return:
        """
        while True:
            try:
                d = {}
                num = int(input())
                for i in range(num):
                    tmp = input()
                    # tmp = sys.stdin.readline()
                    k, v = map(int, (tmp.split()))
                    # k, v = tmp.split()
                    # k = int(k)
                    # v = int(v)
                    # d[k] = d.setdefault(k, 0) + v
                    if k in d:
                        d[k] = d[k] + v
                    else:
                        d[k] = v
                for i in sorted(d.keys()):
                    print(i,d[i])
            except:
                break
    
    def test8():
        """
        题目描述
        输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
        输入描述:
        输入一个int型整数
        输出描述:
        按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
        示例1
        输入
        9876673
        输出
        37689
        :return:
        """
        num = input()
        num = ''.join(num[::-1])
        print(num)
        lis = []
        # lis = list(num[::1])
        # print(lis)
        # lis = list(set(lis))
        for i in num:
            if i not in lis:
                lis.append(i)
        print(lis)
        output = ''.join(lis[::1])
        print(output)
    
    def test9():
        """
        题目描述
        编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。
        输入描述:
        输入N个字符,字符在ACSII码范围内。
        输出描述:
        输出范围在(0~127)字符的个数。
        示例1
        输入
        abc
        输出
        3
        :return:
        """
        while True:
            try:
                acs = input()
                # chars = set()
                chars = []
                for a in acs:
                    # if 0 <= ord(a) <= 127:
                    #     chars.add(a)
                    if a not in chars:
                        chars.append(a)
                chars = ''.join(chars[::1])
                print(len(chars))
            except:
                break
    
    
    def test11():
        """
        题目描述
        描述:
        输入一个整数,将这个整数以字符串的形式逆序输出
        程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
        输入描述:
        输入一个int整数
        输出描述:
        将这个整数以字符串的形式逆序输出
        示例1
        输入
        1516000
        输出
        0006151
        :return:
        """
        num = input()
        num = num[::-1]
        print(num)
    
    
    def test12():
        """
        题目描述
        将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”
        所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符
        接口说明
        /**
         * 反转句子
         *
         * @param sentence 原句子
         * @return 反转后的句子
         */
        public String reverse(String sentence);
        输入描述:
        将一个英文语句以单词为单位逆序排放。
        输出描述:
        得到逆序的句子
        示例1
        输入
        I am a boy
        输出
        boy a am I
        :return:
        """
        # sentence = input()
        # lis = list(sentence.split())
        # output = ''
        # for i in lis[::-1]:
        #     output += (i + ' ')
        # output2 = ''
        # for i in output[:-1:1]:
        #     output2 += i
        # print(output2)
    
        import re
        words = input()
        rev_words = re.split(r"[	|s]+", words)
        rev_words.reverse()
        print(" ".join(rev_words))
    
    
    def test13():
        """
        题目描述
        给定n个字符串,请对n个字符串按照字典序排列。
        输入描述:
        输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。
        输出描述:
        数据输出n行,输出结果为按照字典序排列的字符串。
        示例1
        输入
        复制
        9
        cap
        to
        cat
        card
        two
        too
        up
        boat
        boot
        输出
        复制
        boat
        boot
        cap
        card
        cat
        to
        too
        two
        up
        :return:
        """
        num = int(input())
        lis = []
        for i in range(num):
            lis.append(input())
        lis.sort()
        for i in lis:
            print(i)
    
    
    def test14():
        """
        题目描述
        输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
        输入描述:
         输入一个整数(int类型)
        输出描述:
         这个数转换成2进制后,输出1的个数
        示例1
        输入
        5
        输出
        2
        :return:
        """
        num = int(input())
        # output = bin(num).count('1')
        output = 0
        while num > 0:
            output += (num & 1)
            num = num >> 1
        print(output)
    
    
    def test15():
        """
        题目描述
        正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。
        输入描述:
        输入两个正整数A和B。
        输出描述:
        输出A和B的最小公倍数。
        示例1
        输入
        5
        7
        输出
        35
        :return:
        """
        n = input().split()
        a = int(n[0])
        b = int(n[1])
        i, j = a, b
        m = a % b
        while m != 0:
            a = b
            b = m
            m = a % b
        print(int(i * j / b))
    
    
    def test16():
        """
        题目描述
        Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过C语言解决。
        输入描述:
        Lily使用的图片包括"A"到"Z"、"a"到"z"、"0"到"9"。输入字母或数字个数不超过1024。
        输出描述:
        Lily的所有图片按照从小到大的顺序输出
        示例1
        输入
        Ihave1nose2hands10fingers
        输出
        0112Iaadeeefghhinnnorsssv
        :return:
        """
        while True:
            try:
                seq = input()
                # lis = list(seq[::1])
                # lis.sort()
                # seq = ''
                # for s in lis:
                #    seq += s
                seq = ''.join(sorted(seq))
                print(seq)
            except:
                break
    
    
    def test17():
        """
        题目描述
        找出字符串中第一个只出现一次的字符
        输入描述:
        输入一个非空字符串
        输出描述:
        输出第一个只出现一次的字符,如果不存在输出-1
        示例1
        输入
        asdfasdfo
        输出
        o
        :return:
        """
        while True:
            try:
                s = input()
                for i in s:
                    if s.count(i) == 1:
                        print(i)
                        break
                else:
                    print('-1')
            except:
                break
    



    ''' 题目描述 骰子是一个立方体,每个面一个数字,初始为左1,右2,前3(观察者方向),后4,上5,下6, 用123456表示这个状态,放置到平面上,可以向左翻转(用L表示向左翻转1次),可以向右翻转 (用R表示向右翻转1次),可以向前翻转(用F表示向前翻转1次),可以向后翻转(用B表示向后 翻转1次),可以逆时针旋转(用A表示逆时针旋转90度),可以顺时针旋转(用C表示顺时针旋转 90度),现从初始状态开始,根据输入的动作序列,计算得到最终的状态。 输入描述: 初始状态为:123456 输入只包含LRFBAC的字母序列,最大长度50,可重复 输出描述: 输出最终状态 示例1 输入 复制 RA 输出 复制 436512''' s = input() lis = ['1', '2', '3', '4', '5', '6'] for i in s: if i == 'R': l = lis[0] r = lis[1] u = lis[4] d = lis[5] lis[0] = d lis[1] = u lis[4] = l lis[5] = r elif i == 'L': l = lis[0] r = lis[1] u = lis[4] d = lis[5] lis[0] = u lis[1] = d lis[4] = r lis[5] = l elif i == 'F': f = lis[2] b = lis[3] u = lis[4] d = lis[5] lis[2] = d lis[3] = u lis[4] = f lis[5] = b elif i == 'B': f = lis[2] b = lis[3] u = lis[4] d = lis[5] lis[2] = u lis[3] = d lis[4] = b lis[5] = f elif i == 'A': l = lis[0] r = lis[1] f = lis[2] b = lis[3] lis[0] = f lis[1] = b lis[2] = r lis[3] = l elif i == 'C': l = lis[0] r = lis[1] f = lis[2] b = lis[3] lis[0] = b lis[1] = f lis[2] = l lis[3] = r s = ''.join(lis[::1]) print(s)
  • 相关阅读:
    在webBrowser中取Cookie的方法
    C#遍历DataSet中数据的几种方法总结
    php数组排序函数
    linux top命令详解
    HTTPSQS(HTTP Simple Queue Service)消息队列
    mysql 触发器(trigger) 总结
    HDU4292 Food —— 最大流 + 拆点
    POJ1459 Power Network —— 最大流
    POJ2516 Minimum Cost —— 最小费用最大流
    HDU4280 Island Transport —— 最大流 ISAP算法
  • 原文地址:https://www.cnblogs.com/UFO-blogs/p/9676446.html
Copyright © 2011-2022 走看看