Desidero scoprire se due numeri N1 e N2 sono le permutazioni delle stesse cifre. Ad esempio 123
e 321
sono permutazioni delle stesse cifre, dove non lo sono 234
e 123
. Ho usato Python per risolvere il problema di cui non sono un esperto. Sto usando IDLE Python GUI
su Windows 7
. Le specifiche sono Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
.Nome globale in Python
Il codice Python è mostrato di seguito,
def k(n, m):
s1 = n
s2 = m
k = 0
fl = 0
while k < 10 :
arr1[k] = 0
arr2[k] = 0
k = k + 1
while s1 > 0 :
t = s1 % 10
arr1[t] = 1
t = s2 % 10
arr2[t] = 1
s1 = s1/10
s2 = s2/10
k = 0
while k < 10 :
if arr1[k] != arr2[k]:
fl = 1
k = k + 1
return fl
Ho salvato il file come k.py
e importati utilizzando il seguente comando import k
. Ma quando ho provato a eseguire il codice come k.k(123, 321)
ho ricevuto il seguente errore.
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
k.k(123,321)
File "k.py", line 7, in k
global arr2
NameError: global name 'arr1' is not defined
ho cercato di dichiarare le matrici come segue,
arr1 = []
arr2 = []
Ho anche provato,
global arr1 = []
global arr2 = []
e
global arr1
global arr2
Ma ancora sto ottenendo lo stesso errore . cosa c'è che non va nel mio codice?
Ho verificato le seguenti risposte in SO ma non ho potuto risolvere il mio problema.
Use of "global" keyword in Python
quello che credevo fosse che in Python non devi dichiarare qualsiasi variabile, invece si può semplicemente utilizzare. Mi sbaglio su questa ipotesi?
Qualche suggerimento? Grazie.
potrebbe prendere in considerazione 'ordinato (str (n)) == ordinato (str (m)) 'che è un po 'più facile da digerire –
@Jon Clements: Grazie per la soluzione semplice :) – Deepu