A,B,C,...。 Z,AA,AB,... .AZ,BA,BB,...。 ,ZZ,AAA,...寫一個函數,它需要一個整數n並返回字符串表示。有人可以告訴我算法來找到系列中的第n個值嗎?系列算法
系列算法
回答
治療那些字符串作爲數字與A=0
基座26。這不完全是一個確切的翻譯,因爲在實際基地26 A=AA=AAA=0
,所以你必須做一些必要的調整。
這裏是一個Java實現:根據需要
static String convert(int n) {
int digits = 1;
for (int j = 26; j <= n; j *= 26) {
digits++;
n -= j;
}
String s = "";
for (; digits --> 0 ;) {
s = (char) ('A' + (n % 26)) + s;
n /= 26;
}
return s;
}
這種轉換0=A, 26=AA, 702=AAA
。
沒有放棄太多(因爲這個問題似乎是一個家庭作業問題),你正在做的是接近相同的翻譯整數n
到基地26.祝你好運!
不準確的翻譯。 'A'對'AA'對'AAA'等 – polygenelubricants 2010-03-06 00:54:35
@polygenelubricants,它足夠接近作業。提供一個完整的解決方案(如你的)對學習者是一種傷害。 – 2010-03-06 02:04:01
它可能或可能不是家庭作業,我們永遠無法100%確定。我不想處理元問題,只是盡我全力回答問題。不過,我瞭解你的觀點。 「家庭作業」問題也曾經困擾過我。 – polygenelubricants 2010-03-06 02:10:49
如果像有些人懷疑,這是功課,那麼這個答案可能不會有太大幫助。如果這是針對真實世界的項目,那麼製作一個生成器可能是有意義的,這對於某些語言(如Python)來說是一件很容易和習慣的事情。是這樣的:
def letterPattern():
pattern = [0]
while True:
yield pattern
pattern[0] += 1
# iterate through all numbers in the list *except* the last one
for i in range(0,len(pattern)-1):
if pattern[i] == 26:
pattern[i] = 0
pattern[i+1] += 1
# now if the last number is 26, set it to zero, and append another zero to the end
if pattern[-1] == 26:
pattern[-1] = 0
pattern.append(0)
除了代替得到pattern
本身你會扭轉它,並映射爲0〜A,1到B,等等。然後得到的字符串。我已經運行上面的代碼,它似乎工作,但我沒有廣泛測試它。
我希望你會發現這個可讀落實不夠,即使你不知道的Python。 (對於Pythonistas來說,是的,「我在範圍內(...)」循環是醜陋的,並且沒有音調,但是在我頭頂,我不知道任何其他方式來做我在這裏做的事情)
- 1. 算法來處理一系列的值
- 2. 計算一系列
- 3. 幾何系列模運算
- 4. 計算Aroon指標系列
- 5. 算在一系列串
- 6. 算術/幾何系列
- 7. 計算一個系列
- 8. 計算一系列值
- 9. ř計算一系列
- 10. 計算系列的總和
- 11. 計算二項式係數的算法
- 12. 散列算法
- 13. 陣列算法
- 14. 算法陣列
- 15. 星系生成算法
- 16. 建議算法/庫/系統
- 17. OpenCV POSIT算法 - 座標系
- 18. 專家系統算法
- 19. Python Pandas,從現有系列的計算創建新系列
- 20. 算法從陣列
- 21. RAR3散列算法
- 22. 算法在列表
- 23. 點算法陣列
- 24. 算法從列表
- 25. 60bit散列算法
- 26. 創建一個方法使用(sum系列)編寫一個方法來計算以下系列
- 27. 從一系列照片學習3D模型的算法
- 28. 鑑於數字系列,找到校驗數字算法...?
- 29. 爲每個用戶分配一系列唯一位的算法?
- 30. 算法 - 查找一系列Sophie Germain素數
如果這是家庭作業,那麼將它包含在您的標籤中會很好。 – 2010-03-06 00:15:15
n開始1還是n開始於0? – 2010-03-06 00:42:37
這個問題在這裏至少被問了3次,每次在答案中都有大量的實現。 – Svante 2010-03-06 11:06:13