Leecode做題記錄&加HuaWei往年機試題(持續更新)

爲了參加某公司的實習生招聘-開始刷題,做安全的菜鳥算法是硬傷。。。一個建築狗的程序員之路好艱難??,幸好才大二一切都來得及!!

Huawei text

#HuaWei14
number = int(input())
bins = bin(number)
flag = 0
for e in bins:
    if e == '1':
        flag += 1
print flag
#HuaWei13
num = input()
word = []
for i in range(num):
    word.append(raw_input())
word.sort()
for b in word:
    print b
#HuaWei12
word = raw_input().split(' ')
new = ''
for i in range(len(word)-1,-1,-1):
    new += word[i]
    new += ' '
print new
#HuaWei11
number = list(raw_input())
number.reverse()
num = ''
for i in number:
    num += i
print num
#HuaWei10
string = raw_input()
result = ''
for i in string:
    if ord(i) >= 0 and ord(i) <=127:
        if i not in result:
            result += i
print len(result)
#HuaWei9
s = raw_input()
s = list(s)
s.reverse()
L = []
for x in s:
    if x not in L:
        L.append(x)
print "".join(L)
#HuaWei8
a = input()
d = {}
for i in range(int(a)):
    b = list(map(int, input().split(' ')))
    if b[0] not in d.keys():
        d[b[0]] = b[1]
    else:
        d[b[0]] += b[1]

for key in d.keys():
    print(key, d[key])
#HuaWei7
number = float(raw_input())

if number - int(number) >= 0.5:
    print (int(number) +1)
if number - int(number) < 0.5:
    print int(number)
#HuaWei6 something can't understand totally
import sys
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:
#HuaWei5 Tips:use try bypass wrong
while True:
    try:
        hex = raw_input()
        if hex[:2] == '0x':
            hex = hex[2:]
        if hex.isalnum() == True:
            print(int(hex,16))
        else:
            print"wrong"
    except:
        break
#HuaWei4
def panduan(string):
    i = 0
    if len(string) == 8:
        print string
    elif len(string) > 8:
        m = len(string) / 8
        for i in range(0,m):
            print string[i*8:(i+1)*8]
        if m != len(string) / 8.0:
            print string[(i+1)*8:].ljust(8,'0')
    elif len(string) < 8:
        if string == ' ':
            pass
        else:
            print(string.ljust(8,'0'))
if __name__ == "__main__":
    s1 = raw_input()
    s2 = raw_input()
    panduan(s1)
    panduan(s2)
#HuaWei3 這裏讀者自己加一下try crash 
num = int(input())
number = []
result = []
for i in range(0,num):
    ex = int(input())
    number.append(ex)
for i in range(0,num):
    if number[i] in result:
        pass
    else:
        result.append(number[i])
result.sort()
print '\n'
for i in result:
    print i

#HuaWei2
s = raw_input()
s = s.lower()
sub_str = raw_input()
sub_str = sub_str.lower()
flag = 0
for i in range(0,len(s)):
    if s[i] == sub_str:
        flag += 1
print flag
#HaWei1
s = raw_input()
flag = 0
for i in range(len(s)-1,-1,-1):
    if s[i] == ' ':
        break
    else:
        print s[i]
        flag += 1
print flag

Leetcode:

Leetcode 1
class Solution(object):
    def twoSum(self, nums, target):
        for i in range(len(nums)):
            text = target - nums[i]
            for j in range(i+1,len(nums)):
                if text == nums[j]:
                    return [i,j]
#************************************************
Leetcode 2
# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution(object):
    def addTwoNumbers(self, l1, l2):
        resultcode = None
        addin = 0
        while True:
            if l1.val == -1:
                l1.val = 0
            if l2.val == -1:
                l2.val = 0
            tSum = (l1.val + l2.val + addin) % 10
            addin = (l1.val + l2.val+addin)/10
            listen = ListNode(tSum)
            
            if resultcode == None:
                resultcode = listen
                flagNode = resultcode
            else:
                flagNode.next = listen
                flagNode = flagNode.next
            
            if l1.next != None:
                l1 = l1.next
            else:
                l1.val = -1
            if l2.next != None:
                l2 = l2.next
            else:
                l2.val = -1
            if l1.val == -1 and l2.val == -1:
                break
        if addin != 0:
            listen = ListNode(addin)
            flagNode.next = listen
        return resultcode
        
                
        """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
****************************************************
leetcode 3 
class Solution(object):
    def lengthOfLongestSubstring(self, s):
        d = ""
        f = ""
        for i in range(len(s)):
            if s[i] not in f:
                f += s[i]
            else:
                if len(d) < len(f):
                    d = f
                f = f[f.index(s[i])+1::] + s[i]
              
        return max(len(d), len(f))
#*******************************************************
leetcode4
class Solution(object):
    def findMedianSortedArrays(self, nums1, nums2):
        array = nums1 + nums2
        array = sorted(array)
        lon = len(array)
        if lon % 2 == 1:
            mid = array[lon / 2]
        else:
            mid = (float(array[lon // 2 -1]) + float(array[lon // 2])) /2
        return mid
#***********************************************************
leetcode5 -.-
class Solution(object):
    def longestPalindrome(self, s):
        """
        :type s: str
        :rtype: str
        """
        size = len(s)
        if size == 1:
            return s
        if size == 2:
            if s[0] == s[1]:
                return s
            return s[0]
        maxp = 1
        ans = s[0]
        i = 0
        while i < size:
            j = i + 1
            while j < size:
                if s[i] == s[j]:
                    j += 1
                else:
                    break
            k = 0
            while i - k - 1 >= 0 and j + k<= size - 1:
                if s[i- k - 1] != s[j + k]:
                    break
                k += 1
            if j - i + 2*k > maxp:
                maxp = j- i + 2*k
                ans = s[i - k:j + k]
            if j + k == size - 1:
                break
            i = j
        return ans

其中還有很多不會做的,看的答案,果然自己還是很菜。慢慢進階,慢慢來,不懂的多看看,算法,碼代碼能力一直都有用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章