python入门300例之1~10例

第一例:反转一个三位整数
问题:输入456,输出654,输入900,输出9

class Solution:
    #输入456,输出654,输入900,输出9
    def revereInger(self,number):
       a=int(number/100)
       b=int(number%100/10)
       c=int(number%10)
       return(c*100+b*10+a)

if __name__=='__main__':
    number = int(input("输入一个三位数整数:"))
    solution=Solution()
    ans=solution.revereInger(number)
    print("输出的数值为:",ans)
#注意点:input函数输入的是个字符串,如果改为数字,需要转换为int

第二例:合并排序数组
问题:合并两个升序的整数数组,生成一个新数组,且升序

class solution:
    def mergeSortedArray(self,A,B):
        i,j=0,0
        C=[]
        while i<len(A) and j<len(B):
            if A[i]<B[j]:
                C.append(A[i])
                i+=1
            else:
                C.append(B[j])
                j+=1
        while i<len(A):
            C.append(A[i])
            i+=1
        while j<len(B):
            C.append(B[j])
            j+=1
        return C

if __name__=="__main__":
    A=[1,2,3,4]
    B=[2,3,4,6]
    solution=solution()
    print(solution.mergeSortedArray(A,B))

简单写法:
sorted()函数妙用

for i in range(len(B)):
    A.append(B[i])
    C=sorted(A)
    return C

第三例:旋转字符串:
A 的旋转操作就是将 A 最左边的字符移动到最右边。 例如, 若 A = ‘abcde’,在移动一次之后结果就是’bcdea’

class solution:
  def rotateString(self,s,offset):
      if len(s)==0:
          return False
      elif len(s)>0:
          offset=offset%len(s)#始终offset不超过len(s)
      temp=(s+s)[len(s)-offset:2*len(s)-offset]
      #相当于两个字符串合并,取需要的一段
      for i in range(len(temp)):
          s[i]=temp[i]
if __name__=='__main__':
    s=["a","b","c","d","e","f","g"]
    offset=3
    solution=solution()
    solution.rotateString(s,offset)
    print("输出s:",s)

leetcode有类似题目,可以理解类似旋转字符串问题

第四例:二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1
输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4

class Solution:
    def search(self, nums, target):
       left,right=0,len(nums)-1
       while left<=right:
            mid=left+(right-left)//2
            if nums[mid]==target:
                return mid
            if target<nums[mid]:
                right=mid-1
            else:
                left=mid+1
       return -1
#要注意缩进问题
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值