私はこれまで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;
}
私はこの時点で立ち往生しています、私の現在の実装はひどいようですが、どこに移動するか、何を探すべきか、実際にこのタスクを完了する方法、そして私のプログラムの人間が読める説明を常に表示する方法についての小さなガイダンスが必要です、最小数のブラケットと論理的な方法で。
正しい方向に少し押していただければ幸いです。とても迷っています。