Python3 notes

简介: Python3 notes

Python 数组翻转指定个数的元素


定义一个整型数组,并将指定个数的元素翻转到数组的尾部。

例如:(ar[], d, n) 将长度为 n 的 数组 arr 的前面 d 个元素翻转到数组尾部。

以下演示了将数组的前面两个元素放到数组后面。

原始数组:

1234567

翻转后:

3456712

实例 1

def leftRotate(arr, d, n):

   for i inrange(d):

       leftRotatebyOne(arr, n)

def leftRotatebyOne(arr, n):

   temp = arr[0]

   for i inrange(n-1):

       arr[i]= arr[i+1]

   arr[n-1]= temp

       

 

def printArray(arr,size):

   for i inrange(size):

       print("%d"% arr[i],end=" ")

 


arr =[1,2,3,4,5,6,7]

leftRotate(arr,2,7)

printArray(arr,7)

以上实例输出结果为:

3456712

实例 2

def leftRotate(arr, d, n):

   for i inrange(gcd(d,n)):

       

       temp = arr[i]

       j = i

       while1:

           k = j + d

           if k >= n:

               k = k - n

           if k == i:

               break

           arr[j]= arr[k]

           j = k

       arr[j]= temp


def printArray(arr, size):

   for i inrange(size):

       print("%d" % arr[i], end=" ")


def gcd(a, b):

   if b ==0:

       return a;

   else:

       return gcd(b, a%b)


arr =[1,2,3,4,5,6,7]

leftRotate(arr,2,7)

printArray(arr,7)

以上实例输出结果为:

3456712

实例 3

def rverseArray(arr, start, end):

   while(start < end):

       temp = arr[start]

       arr[start]= arr[end]

       arr[end]= temp

       start +=1

       end = end-1

 

def leftRotate(arr, d):

   n =len(arr)

   rverseArray(arr,0, d-1)

   rverseArray(arr, d, n-1)

   rverseArray(arr,0, n-1)

 

def printArray(arr):

   for i inrange(0,len(arr)):

       print(arr[i], end=' ')

 

arr =[1,2,3,4,5,6,7]

leftRotate(arr,2)

printArray(arr)

以上实例输出结果为:

3456712

相关文章
|
6月前
|
SQL 数据库连接 数据库
Python3 notes
Python3 notes
|
6月前
|
存储 监控 安全
使用VB.NET实现上网行为管理软件的用户权限管理功能
使用VB.NET进行用户权限管理,通过定义枚举类型`UserPermission`来设置权限等级,创建`User`类存储用户信息和权限。实现登录验证函数`ValidateUser`检查权限,及后台任务`MonitorAndSubmitData`监控并提交用户行为数据至指定网站,增强网络安全。此方法有效管理用户上网行为,提供软件安全。
168 4
|
6月前
|
存储 安全 Serverless
云计算
5月更文挑战第3天
|
6月前
|
弹性计算 数据安全/隐私保护
|
Java Spring 容器
如何避免循环依赖
如何避免循环依赖
|
人工智能 自然语言处理 机器人
Prompt工程师指南从基础到进阶篇:用于开发和优化提示,以有效地使用语言模型(LMs)进行各种应用和研究主题
Prompt工程师指南从基础到进阶篇:用于开发和优化提示,以有效地使用语言模型(LMs)进行各种应用和研究主题
|
SQL NoSQL 关系型数据库
|
消息中间件 RocketMQ 测试技术
当 Messaging 遇上 Jepsen
分布式系统面临的挑战 Is it better to be alive and wrong or right and dead?随着计算机技术的发展,系统架构从集中式演进到分布式。分布式系统相对于单台机器来说提供了更好的可扩展性,容错性以及更低的延迟,但在单台计算机上运行软件和分布式系统上运行软件却有着根本的区别,其中一点便是单台计算机上运行软件,错误是可预测的。
5945 6
|
API Python
解决办法:RuntimeError: module compiled against API version 0xc but this version of numpy is 0xa
解决办法:RuntimeError: module compiled against API version 0xc but this version of numpy is 0xa
888 0
|
Web App开发 前端开发 Java