2つの数字が同じ数字の順列であるかどうかを調べたいのですが、N1とN2は同じ数字の順列です。例えば、123
と321
は同じ桁の順列であり、234
と123
はそうではありません。私は、私が専門家ではない問題を解決するためにPythonを使用しました。 私は、をWindows 7
に使用しています。仕様はPython 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
です。Pythonのグローバル名
ザPythonコードを以下に示し、
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
Iはk.py
としてファイルを保存し、次のコマンドimport k
を使用してインポート。しかし、コードをk.k(123, 321)
として実行しようとすると、次のエラーが発生します。
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
私は次のように配列を宣言しようとした、
arr1 = []
arr2 = []
私も試してみました、
global arr1 = []
global arr2 = []
と
global arr1
global arr2
しかし、私はまだ同じエラーを取得しています。私のコードで何が間違っていますか?
SOで次の回答を確認しましたが、問題を解決できませんでした。私は信じて何
Use of "global" keyword in Python
Pythonでは、あなたは、単にそれらを使用することができます代わりに、任意の変数を宣言する必要はありませんということでした。私はこの仮定について間違っていますか?
ありがとうございました。
()はSTR(n)は 'ソートを検討する必要があります==ソート(STR(メートル)) 'これはちょっとgrocに簡単です –
@Jon Clements:簡単な解決法をありがとう:) – Deepu