鱼C论坛

 找回密码
 立即注册
楼主: 冬雪雪冬

[技术交流] Python:每日一题 161

[复制链接]
发表于 2018-3-13 02:02:54 From FishC Mobile | 显示全部楼层
shigure_takimi 发表于 2018-3-9 23:23

你这个是最简单和容易理解的,点赞
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-13 12:58:02 | 显示全部楼层
晓屁屁 发表于 2018-3-9 23:29
def fun(num):
    str1 = ''
    count1 = 0

@冬雪雪冬 为啥这个没有分啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-13 21:05:57 | 显示全部楼层
晓屁屁 发表于 2018-3-13 12:58
@冬雪雪冬 为啥这个没有分啊

已补上
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-13 21:12:49 | 显示全部楼层

谢谢哥,,我是python新手 ,每次出题我都认真做  ,做了好长时间做出来了 没给分 心理好难受~~以为自己做错了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-13 22:54:43 | 显示全部楼层
晓屁屁 发表于 2018-3-13 21:12
谢谢哥,,我是python新手 ,每次出题我都认真做  ,做了好长时间做出来了 没给分 心理好难受~~以为自 ...

要在出题24小时内答题。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-13 23:40:00 | 显示全部楼层
shigure_takimi 发表于 2018-3-13 22:54
要在出题24小时内答题。

好的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-14 16:48:31 | 显示全部楼层

嗯嗯,谢谢提醒。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-14 10:36:27 | 显示全部楼层
  1. def fun161(x):
  2.     def letter_printer(y):
  3.         result = ''
  4.         for i in range(y):
  5.             if i >= 26:
  6.                 i = i - 26*(i//26)
  7.             result += chr(65+i)
  8.         return result
  9.     result_list = []
  10.     block = 0
  11.     for i in range(1,x)[::-1]:
  12.         result_list.append(' '*block + letter_printer(i) + letter_printer(i-1)[::-1])
  13.         block += 1
  14.     for i in result_list[::-1]:
  15.         print(i)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-6 09:26:58 | 显示全部楼层
本帖最后由 咕咕鸡鸽鸽 于 2019-5-6 09:36 编辑
  1. def fun161(n):
  2.     for i in range(1,n+1):
  3.         str1 = ""
  4.         for j in range(1,i+1):
  5.             if j == 26:
  6.                 str1 += "Z"
  7.             else:
  8.                 str1 += chr(j%26 + 64)
  9.         str1 = str1 + str1[:-1][::-1]
  10.         print(str1.center(2*n-1," "))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-13 21:54:51 | 显示全部楼层
from search_dict_upper import dict1
import time

def column_out(num):
    for i in range(1,num+1):
        print(line_out(i,num))

def line_out(line,num):
    str_line = " "*(num-line) + liangbianjia(line-2,dict1[(line-1)%26]) + " "*(num-line)
    return str_line

def liangbianjia(column,str_line_space):
    if column == -1:
        return str_line_space
    str_line_space = dict1[column%26] + str_line_space + dict1[column%26]
    return liangbianjia(column-1,str_line_space)


result = input("请输入数字(仅限数字)")
start = time.time()
column_out(int(result))
print(time.time()-start)

请输入数字(仅限数字)27
                          A                          
                         ABA                        
                        ABCBA                        
                       ABCDCBA                       
                      ABCDEDCBA                     
                     ABCDEFEDCBA                     
                    ABCDEFGFEDCBA                    
                   ABCDEFGHGFEDCBA                  
                  ABCDEFGHIHGFEDCBA                  
                 ABCDEFGHIJIHGFEDCBA                 
                ABCDEFGHIJKJIHGFEDCBA               
               ABCDEFGHIJKLKJIHGFEDCBA               
              ABCDEFGHIJKLMLKJIHGFEDCBA              
             ABCDEFGHIJKLMNMLKJIHGFEDCBA            
            ABCDEFGHIJKLMNONMLKJIHGFEDCBA            
           ABCDEFGHIJKLMNOPONMLKJIHGFEDCBA           
          ABCDEFGHIJKLMNOPQPONMLKJIHGFEDCBA         
         ABCDEFGHIJKLMNOPQRQPONMLKJIHGFEDCBA         
        ABCDEFGHIJKLMNOPQRSRQPONMLKJIHGFEDCBA        
       ABCDEFGHIJKLMNOPQRSTSRQPONMLKJIHGFEDCBA      
      ABCDEFGHIJKLMNOPQRSTUTSRQPONMLKJIHGFEDCBA      
     ABCDEFGHIJKLMNOPQRSTUVUTSRQPONMLKJIHGFEDCBA     
    ABCDEFGHIJKLMNOPQRSTUVWVUTSRQPONMLKJIHGFEDCBA   
   ABCDEFGHIJKLMNOPQRSTUVWXWVUTSRQPONMLKJIHGFEDCBA   
  ABCDEFGHIJKLMNOPQRSTUVWXYXWVUTSRQPONMLKJIHGFEDCBA  
ABCDEFGHIJKLMNOPQRSTUVWXYZYXWVUTSRQPONMLKJIHGFEDCBA
ABCDEFGHIJKLMNOPQRSTUVWXYZAZYXWVUTSRQPONMLKJIHGFEDCBA
0.06655454635620117
其中字母表在导入的那个文件中,这样使速度提升了许多倍
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-14 11:34:23 | 显示全部楼层
  1. def getSplite(num):
  2.     s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  3.     i=1
  4.     n = num // len(s)
  5.     if num > len(s*n):
  6.         s1 = s*(n+1) + s[:num-len(s)]
  7.         while num:
  8.             print(' '*num,end='')
  9.             print(s1[:i]+s1[:i][::-1][1:])
  10.             i += 1
  11.             num -= 1
  12.     else:
  13.         while num:
  14.             print(' '*num,end='')
  15.             print(s[:i]+s[:i][::-1][1:])
  16.             i += 1
  17.             num -= 1

  18. if __name__ == '__main__':
  19.     getSplite(125)

复制代码


目前是基本实现了 比较简单
逻辑应该还可以优化的,没去想了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-14 11:41:03 | 显示全部楼层

  1. def getSplite(num):
  2.     s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  3.     i=1
  4.     n = num // len(s)
  5.     if num > len(s*n):
  6.         s1 = s*(n+1) + s[:num-len(s)]
  7.         while num:
  8.             print(' '*num,end='')
  9.             print(s1[:i]+s1[:i][::-1][1:])
  10.             i += 1
  11.             num -= 1

  12. if __name__ == '__main__':
  13.     getSplite(5)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-21 17:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表