11 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
# -*- coding:utf-8 -*-
class Solution:
def NumberOf1(self, n):
# write code here
# count = 0
# while (n & 0xffffffff) != 0:
# count += 1
# n = n & (n - 1)
# return count
if n>=0:
return bin(n).count('1')
else:
return bin(n&0xffffffff).count('1')
12给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
# -*- coding:utf-8 -*-
class Solution:
def Power(self, base, exponent):
if base==0:
return 0
if exponent==0:
return 1
else:
return base**exponent
13输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
# -*- coding:utf-8 -*-
class Solution:
def reOrderArray(self, array):
# write code here
l=[]
for i in range(len(array)):
if array[i]%2!=0:
l.append(array[i])
for i in range(len(array)):
if array[i]%2==0:
l.append(array[i])
return l
14输入一个链表,输出该链表中倒数第k个结点。
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def FindKthToTail(self, head, k):
# write code here
l=[]
while head!=None:
l.append(head)
head=head.next
if k>len(l) or k<1:
return
else:
return l[-k]
15输入一个链表,反转链表后,输出新链表的表头。
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回ListNode
def ReverseList(self, pHead):
# write code here
previous=None
cur=pHead
while cur:
nextNode=cur.next
cur.next=previous
previous=cur
cur=nextNode
return previous