Инкремент значения строки - C#
Формулировка задачи:
Здравствуйте!
Есть строка
AB
нужно увеличить эти символы в лексикографическом значении: например АВ + 2 = AD
При переходе через "Z" ведущие символы должны тоже увеличиваться AZ + 3 = BC
Решение задачи: «Инкремент значения строки»
textual
Листинг программы
using System;
using System.Linq;
using System.Collections.Generic;
public class Kata
{
public static void Main()
{
string s = "ZZZ";
Stack<int> digits = new Stack<int>(s.Length + 1);
int previous = 1;
foreach (char ch in s.Reverse())
{
int digit = ch - 'A' + previous;
previous = digit / 26;
digits.Push(digit % 26);
}
if (previous != 0) digits.Push(previous);
Console.WriteLine(new String(digits.Select(d => (char)(d + 'A')).ToArray()));
}
}