我正在解决一个编程难题,它需要转换输入字符串,方法是用“递增”字符替换成对重复的连续字符,例如"abb“-> "ac","cbb”-> "d“。"zz“应改为"a”。我是用一个堆栈来做的:
def transform(s):
stack = []
for c in s:
while stack and stack[-1] == c:
stack.pop()
c = increment_char(c)
stack.append(c)
这个编程难题的灵感来源于昨天在这里提出的另一个问题,但作者删除了这个问题。
的挑战:
使用Visual.EXE(或您最喜欢的C# IDE)创建一个可执行二进制文件(Windows或Linux二进制),它将以下文本打印到标准输出:
Main() is the main method of C# programs!
..。不使用出现在任何源文件中的连续4个字母appearing!
备注:
如果您的源代码包含文本remainder (例如),它包含连续的4个字母M- any,但是如果它包含mxain,则4个字母将不再是连续的,因此mxain将被允许。
您不允许运行除C# IDE之外的任何程序,也不允
我猜,这仅限于Java和C#的语法。
在这个编程难题中,您将生成Exceptions,它可以被捕获,但在catch块的末尾再次抛出。
try
{
while(true)
try
{
// you are only allowed to modify code between this try { } brackets
}
catch(Exception ex2) { }
}
catch(Exception ex1)
{
// your goal is to reach this catch