我需要一些模式的帮助 [英] I need some help with a pattern

查看:75
本文介绍了我需要一些模式的帮助的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想打印图案

例如

如果我拿字符串INDIA

它会打印

i want to print the pattern
for example
if i take the string INDIA
it will print

I I I I I I I I I
I N N N N N N N I
I N D D D D D N I
I N D I I I D N I
I N D I A I D N I
I N D I I I D N I
I N D D D D D N I
I N N N N N N N I
I I I I I I I I I





提前谢谢



我有什么试过:





Thank you in advance

What I have tried:

class pat:
    def __init__(self,str):
        self.a=str
    def pattern(self):
        a=self.a
        b=len(a)
        for i in range(1,b+1):
            c=((10**i)//9)**2
            for j in range(b+1-i,1,-1):
                print (" ",end=" ")
            while c!=0:
                d=int((c%10)-1)
                c=c//10
                print (a[d],end=" ")
            print ()
        for i in range(b-1,0,-1):
            c=((10**i)//9)**2
            for j in range(1,b+1-i):
                print (" ",end=" ")
            while c!=0:
                d=int((c%10)-1)
                c=c//10
                print (a[d],end=" ")
            print ()
ob1=pat(input("ENter string\n"))
ob1.pattern()



它有效但打印出一个菱形。一个正方形


it works but prints a diamond.not a square

推荐答案

所以,你没有尝试自己解决问题,你毫无疑问,你只是想让我们做你的HomeWork。

HomeWork问题是你在现实生活中必须解决的问题的简化版本,他们的目的是学习和练习



我们不做你的家庭工作。

HomeWork不会在乞求别人做你的工作时测试你的技能,它会让你思考和帮助您的老师检查您对所学课程的理解以及您遇到的问题应用它们。

你的任何失败都会帮助你的老师发现你的弱点并设定补救措施。

你的任何失败都会帮助你了解什么有效,什么无效,被称为'试错'学习。

所以,试一试,重读课程并开始工作。如果您遇到特定问题,请显示您的代码并解释这个问题,我们可能会提供帮助。



作为程序员,您的工作是创建算法解决特定问题,你不能依赖别人永远为你做,所以有一段时间你必须学会​​如何。而且越快越好。

当你要求解决方案时,就像试图通过培训其他人来学习开车一样。

创建算法基本上是找到数学并做出必要的调整以适应你的实际问题。



发展的概念就像这个词所暗示的那样:系统地使用科学和满足特定目标或要求的技术知识。 BusinessDictionary.com [ ^ ]

这与有一个不一样快速谷歌并放弃,如果我找不到正确的代码。
So, you show no attempt to solve the problem yourself, you have no question, you just want us to do your HomeWork.
HomeWork problems are simplified versions of the kind of problems you will have to solve in real life, their purpose is learning and practicing.

We do not do your HomeWork.
HomeWork is not set to test your skills at begging other people to do your work, it is set to make you think and to help your teacher to check your understanding of the courses you have taken and also the problems you have at applying them.
Any failure of you will help your teacher spot your weaknesses and set remedial actions.
Any failure of you will help you to learn what works and what don't, it is called 'trial and error' learning.
So, give it a try, reread your lessons and start working. If you are stuck on a specific problem, show your code and explain this exact problem, we might help.

As programmer, your job is to create algorithms that solve specific problems and you can't rely on someone else to eternally do it for you, so there is a time where you will have to learn how to. And the sooner, the better.
When you just ask for the solution, it is like trying to learn to drive a car by having someone else training.
Creating an algorithm is basically finding the maths and make necessary adaptation to fit your actual problem.

The idea of "development" is as the word suggests: "The systematic use of scientific and technical knowledge to meet specific objectives or requirements." BusinessDictionary.com[^]
That's not the same thing as "have a quick google and give up if I can't find exactly the right code".


一旦你意识到你必须选择基于中心字母的当前距离的字母,这是非常简单的,其中距离函数是

It is very simple once you realize you have to choose the letter based on current distance from central letter, where the distance function is
max (|x-L| , |y-L|)

(其中 L 是字符串的长度)



尝试

(Where L is the length of the string)

Try

def distance(x,y,l):
  return max( abs(x-l), abs(y-l))

s = "CODEPROJECT"
l = len(s)
for y in range(0,l*2-1):
  for x in range(0,l*2-1):
    d = distance(x,y,l-1)
    print(s[l-d-1], end='')
  print()


a)注意这个词有n个字母

b)注意行数和列数是n * 2 - 1

c)注意,当打印整个单词时,打印的字母索引列c是n - ABS(n - c)

d)注意,对于每一行r,打印的字母索引不超过n - ABS(n - r)



您现在应该有足够的信息来编写解决方案。
a) Note that the word has n letters
b) Note that the number of rows and columns is n * 2 - 1
c) Note that when the entire word is printed, the index of the letter printed in column c is n - ABS(n - c)
d) Note that for each row r, the index of the letter printed does not exceed n - ABS(n - r)

You should now have enough information to write a solution.


这篇关于我需要一些模式的帮助的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆