0
点赞
收藏
分享

微信扫一扫

【Python 百炼成钢】错位键盘、单词的长度、字母重排

文章目录

前言

一、错位键盘🚩

🪐问题描述

🪐问题分析

🪐代码实现

import sys
s=sys.stdin.readline().strip().split()
indexarr=[0]*255
# 将所有数据存放进一个数组,将键盘上相邻的两个字母在数组中以索引的形式相连
mystr="`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./"
# 将每一位字母的索引存储起来。供以后遍历输入的数据使用
for i in range(len(mystr)):
    indexarr[ord(mystr[i])]=i

flag=True
#遍历输入的n段字符串
for line in s:
    if flag:
        flag=False
        for i in line:
            print(mystr[indexarr[ord(i)]-1],end="")  
    else:
        print(" ",end="")
        for i in line:
            print(mystr[indexarr[ord(i)]-1],end="")

二、单词的平均长度🚩

这一题使用Python做超级简单
使用c语言做的话先进行空格统计,如果空格后面不为空格就进行单词数加1
如果空格后面依旧是空格向下遍历,如果一个位置不为空格就进行字母数加1
最终要将单词数额外加1,因为首尾单词循环的时候只统计进去了一个。

🪐问题描述

🪐问题分析

🪐代码实现

import sys
num=0
n=0
# 这里使用strip()去除输入的末尾换行符
# 使用split()进行字符串分段最后得到的是一个列表形式
mystr=sys.stdin.readline().strip().split()

for i in mystr:
    num+=len(i)
    n+=1
print(num/n)

三、字母重排🚩

🪐问题描述

🪐问题分析

🪐代码实现

import sys
# 元字典序字符串
mydic=list(sys.stdin.readline().strip().split())
mydic=sorted(mydic)
words=sys.stdin.readline().strip().split()
# 排序后的字符串
newdic=[]
newwords=[]
for i in mydic:
    # 字符串不可以直接排序,先转换成字典,然后进行排序
    newdic.append("".join(sorted(i)))

for i in words:
    newwords.append("".join(sorted(i)))
flag=False
i=0
while i<len(newdic):
    if newdic[i] in newwords:
        if not flag:
            print(mydic[i],end="")
            flag=True
        else:
            print(" ",mydic[i],end="")
    i+=1

if not flag:
    print(0)

四、Tex括号问题🚩

🪐问题描述

🪐问题分析

🪐代码实现

import sys
s=sys.stdin.readline().strip()
flag=True
for i in s:
    if i=="'" or i=="\"":
        if flag:
            print("“",end="")
        else:
            print("”",end="")
        flag=not flag
        continue
    print(i,end="")

ฅʕ•̫͡•ʔฅ

ᴴᴬᵛᴱ ᴬ ᴳᴼᴼᴰ ᵀᴵᴹᴱ🏁

举报

相关推荐

0 条评论