牛客3

計算字符個數

題目描述
寫出一個程序,接受一個有字母和數字以及空格組成的字符串,和一個字符,然後輸出輸入字符串中含有該字符的個數。不區分大小寫。
輸入描述:
輸入一個有字母和數字以及空格組成的字符串,和一個字符。
輸出描述:
輸出輸入字符串中含有該字符的個數。

#coding=utf-8
import sys

while True:
    try:
        s=sys.stdin.readline()
        c=raw_input()
        temp=0
        for i in s:
            if i==c or i==c.upper() or i==c.lower():
                temp+=1
        print temp
    except:
        break

明明的隨機數

題目描述
明明想在學校中請一些同學一起做一項問卷調查,爲了實驗的客觀性,他先用計算機生成了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

#coding=utf-8
import sys

while True:
    try:
        num=input()
        ans=[]
        for i in range(num):
            num_per=input()
            if num_per not in ans:
                ans.append(num_per)
        ans.sort()
        for i in ans:
            print i
    except:
        break

最長迴文

題目描述
給出一個只由小寫英文字符a,b,c…y,z組成的字符串S,求S中最長迴文串的長度.
迴文就是正反讀都是一樣的字符串,如aba, abba等
輸入描述:
輸入有多組case,不超過120組,每組輸入爲一行小寫英文字符a,b,c…y,z組成的字符串S
兩組case之間由空行隔開(該空行不用處理)

字符串長度len <= 110000
輸出描述:
每一行一個整數x,對應一組case,表示該組case的字符串中所包含的最長迴文長度.

示例1
輸入

aaaa

abab
輸出

4
3

#coding=utf-8
import sys

while True:
    try:
        s=sys.stdin.readline().strip()
        l=0
        for i in range(len(s)):
            for j in range(len(s)-1,i,-1):
                if s[j]==s[i]:
                    left=i+1;right=j-1
                    while left<right and left+1!=right:
                        if s[left]==s[right]:
                            left+=1;right-=1
                        else:
                            break
                    if left==right or left+1==right:
                        l1=len(s[i:j+1])
                        if l<l1:
                            l=l1
        print l
    except:
        break

字符串分割

題目描述
•連續輸入字符串,請按長度爲8拆分每個字符串後輸出到新的字符串數組;
•長度不是8整數倍的字符串請在後面補數字0,空字符串不處理。
輸入描述:
連續輸入字符串(輸入2次,每個字符串長度小於100)
輸出描述:
輸出到長度爲8的新字符串數組
示例1
輸入

abc
123456789
輸出

abc00000
12345678
90000000

#coding=utf-8
import sys

t=0
while t<2:
    try:
        s=sys.stdin.readline().strip()
        l=len(s)
        if l==8:
            print s
        else:
            temp=0
            while l>8:
                print s[temp*8:temp*8+8]
                l-=8
                temp+=1
            for i in range(8-l):
                s+='0'
            print s[temp*8:]
        t+=1
    except:
        break

進制轉換

題目描述
寫出一個程序,接受一個十六進制的數值字符串,輸出該數值的十進制字符串。(多組同時輸入 )
輸入描述:
輸入一個十六進制的數值字符串。
輸出描述:
輸出該數值的十進制字符串。
示例1
輸入

0xA
輸出

10

#coding=utf-8
import sys

d={'A':10,'B':11,'C':12,'D':13,'E':14,'F':15}

while True:
    try:
        s=raw_input().strip()
        si=s[2:]
        temp=0
        result=0
        for i in range(len(si)-1,-1,-1):
            if si[i] in d:
                result+=d[si[i]]*16**temp
                temp+=1
            else:
                result+=int(si[i])*16**temp
                temp+=1
        print str(result)
    except:
        break

wtf?! 痛苦

while True:
    try:
        print int(raw_input(),16)
    except:
        break

質數因子

題目描述
功能:輸入一個正整數,按照從小到大的順序輸出它的所有質數的因子(如180的質數因子爲2 2 3 3 5 )
最後一個數後面也要有空格

詳細描述:

函數接口說明:
public String getResult(long ulDataInput)
輸入參數:
long ulDataInput:輸入的正整數
返回值:
String

輸入描述:
輸入一個long型整數
輸出描述:
按照從小到大的順序輸出它的所有質數的因子,以空格隔開。最後一個數後面也要有空格。
示例1
輸入

180
輸出

2 2 3 3 5

#coding=utf-8
while True:
    try:
        num=int(raw_input())
        i=2
        while num!=1:
            if num%i==0:
                print i,
                num=num/i
            else:
                i+=1
        print ''
    except:
        break

從小到大,因子肯定是質數的

取近似值

題目描述
寫出一個程序,接受一個正浮點數值,輸出該數值的近似整數值。如果小數點後數值大於等於5,向上取整;小於5,則向下取整。
輸入描述:
輸入一個正浮點數值
輸出描述:
輸出該數值的近似整數值
示例1
輸入

5.5
輸出

6

#coding=utf-8
import sys
while True:
    try:
        num=input()
        p=num-int(num)
        if p>0.4:
            num=int(num)+1
        else:
            num=int(num)
        print num
    except:
        break

合併表記錄

題目描述
數據表記錄包含表索引和數值,請對錶索引相同的記錄進行合併,即將相同索引的數值進行求和運算,輸出按照key值升序進行輸出。
輸入描述:
先輸入鍵值對的個數
然後輸入成對的index和value值,以空格隔開
輸出描述:
輸出合併後的鍵值對(多行)
示例1
輸入

4
0 1
0 2
1 2
3 4
輸出

0 3
1 2
3 4

#coding=utf-8
import sys
while True:
    try:
        num=input()
        d={}
        for i in range(num):
            row=raw_input().strip().split()
            if int(row[0]) not in d.keys():
                d[int(row[0])]=int(row[1])
            else:
                d[int(row[0])]+=int(row[1])
        d.keys().sort()
        for i in d.keys():
            print i,d[i]
    except:
        break

提取不重複的整數

題目描述
輸入一個int型整數,按照從右向左的閱讀順序,返回一個不含重複數字的新的整數。
輸入描述:
輸入一個int型整數
輸出描述:
按照從右向左的閱讀順序,返回一個不含重複數字的新的整數
示例1
輸入

9876673
輸出

37689

#coding=utf-8
import sys
while True:
    try:
        s=raw_input()
        s=s[::-1]
        result=''
        while s!='':
            if s[0] not in result:
                result+=s[0]
            s=s[1:]
        print int(result)
    except:
        break

字符個數統計

題目描述
編寫一個函數,計算字符串中含有的不同字符的個數。字符在ACSII碼範圍內(0~127)。不在範圍內的不作統計。
輸入描述:
輸入N個字符,字符在ACSII碼範圍內。
輸出描述:
輸出範圍在(0~127)字符的個數。
示例1
輸入

abc
輸出

3

#coding=utf-8
while True:
    try:
        s=raw_input()
        result=0
        r=''
        for i in s:
            if i not in r and 0<=ord(i)<=127:
                result+=1
                r+=i
        print result
    except:
        break
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章