张三丰安排刷题

文章目录


涉及复杂度用c语言编,没有要求的用python编。

翻转字符串

    """
    aim:翻转字符串,如'abcde'翻转为edcba
    要求:语言:c(python如果调用底层,未知,可先不考虑复杂度)
    	空间复杂度为o(1)
        请写出思路
        求其时空复杂度
    """
    # python方法一
    strs = 'abcde'
    aim = []
    for i in reversed(strs):
        aim.append(i)
    print(''.join(aim))
    
    # python方法二
    strs = 'abcde'
    strList = strs.split()   # 将输入的字符串用空格分隔为列表
    resList = strList[::-1]    # 将列表反转
    print("".join(resList))    # 打印结果
 
 	# c方法三
 	
    """
    
    时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。
    空间维度:是指执行当前算法需要占用多少内存空间,我们通常用「空间复杂度」来描述。
    
    时间复杂度:公式:T(n) = O(f(n)),其中f(n)表示每行代码执行次数之和,而O表示正比例关系
            O(1):   无论代码执行了多少行,只要是没有循环等复杂结构,那这个代码的时间复杂度就都是O(1)
            线性阶O(n):
                    for i in range(n):  # O(n)
                        print('Hello world')
            平方阶O(n²):    
                    for i in range(n):  # O(n^2)
                        for j in range(n):
                            print('Hello world')    
                    
    空间复杂度:算法在运行过程中临时占用的存储空间大小,即程序中变量的个数,同样反映的是一个趋势
            O(1)-如果算法执行所需要的临时空间不随着某个变量n的大小而变化,即此算法空间复杂度为一个常量
            O(n)-列表的空间复杂度为列表的长度
            
            # 空间复杂度为1
            a = 'Python'
            b = 'PHP'
            c = 'Java'
            
            # 空间复杂度为5 
            num = [1, 2, 3, 4, 5]  
    """
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值