到目前为止,我已经为这个任务工作了 6 天,我特别感到沮丧,因为我没有更多的想法或方法来完成任务想要的。
我正在描述程序部分(我已经开始使用它,还没有完成其余的分配部分),我不知道该怎么做。这是我目前的实现。
+(NSString *)descriptionOfProgram:(id)program
{
if (![self isValidProgram:program])
return @"Invalid program!";
NSMutableArray *stack = [program mutableCopy];
return [self descriptionHelper:stack];
}
+(NSString *)descriptionHelper:(NSMutableArray *)stack
{
NSString *result;
id topOfStack = [stack lastObject];
if (topOfStack) [stack removeLastObject];
if ([topOfStack isKindOfClass:[NSNumber class]])
{
result = [topOfStack stringValue];
}
else if ([topOfStack isKindOfClass:[NSString class]])
{
result = [NSString stringWithFormat:@"(%@ %@ %@)",[self descriptionHelper:stack],topOfStack,[self descriptionHelper:stack]];
return result = [self bracketHandler:result];
}
return result;
}
+(NSString *)bracketHandler:(NSString *)stringWithBrackets
{
int lengthOfString = [stringWithBrackets length];
NSString *newString = stringWithBrackets;
if (lengthOfString < 8)
{
newString = [newString stringByReplacingOccurrencesOfString:@"(" withString:@""];
newString = [newString stringByReplacingOccurrencesOfString:@")" withString:@""];
}
else
{
<#statements#>
}
return newString;
}
我被困在这一点上,我知道我当前的实现似乎很糟糕,但我只想要一个小的指导,告诉我在哪里移动、寻找什么、如何实际完成这项任务并始终显示我的程序的人类可读描述,具有最少数量的括号和逻辑方式。
请我真的很感激只是朝着正确的方向前进,我很迷茫。