計算字符個數
題目描述
寫出一個程序,接受一個有字母和數字以及空格組成的字符串,和一個字符,然後輸出輸入字符串中含有該字符的個數。不區分大小寫。
輸入描述:
輸入一個有字母和數字以及空格組成的字符串,和一個字符。
輸出描述:
輸出輸入字符串中含有該字符的個數。
#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