Les processus du système d'exploitation ne sont pas générés sans raison. Ils ont leurs propres processus parents, et chaque processus est démarré par son propre processus parent. Maintenant, étant donné le tableau de description de la relation parent-enfant du processus, utilisez les caractères (│ ├ └ ─ ) pour afficher visuellement cette relation parent-enfant.
Class Process décrit les informations sur le processus, comme suit :
@interface Process : NSObject
@property (nonatomic) NSString *name; // 进程名
@property (nonatomic) NSArray<Process *> *children; // 子进程
@end
@implementation Process
-(instancetype)initWithName:(NSString*)name children:(NSArray<Process *> *)children {
if (self = [super init]) {
_name = name;
_children = children;
}
return self;
}
- (instancetype)initFromDumpString:(NSString*)dump {
// TODO
}
- (NSString*)dump {
// TODO
}
@end
1) Votre objectif est de remplir cette méthode appelée dump, qui renvoie une chaîne qui affiche la relation parent-enfant sous forme de caractères. Vous pouvez vous référer à l'exemple suivant.
【Exemple】
int main() {
Process* xcode = [[Process alloc] initWithName:@"Xcode"
children:@[[[Process alloc] initWithName:@"Simulator" children:nil],
[[Process alloc] initWithName:@"Debugger" children:nil]]];
Process* finder = [[Process alloc] initWithName:@"Finder" children:nil];
Process* qq = [[Process alloc] initWithName:@"QQ" children:nil];
Process* launcher = [[Process alloc] initWithName:@"Launcher" children:@[xcode, finder, qq]];
NSLog(@"%@", [launcher dump]);
return 0;
}
/* 输出
Launcher
├─ Xcode
│ ├─ Simulator
│ └─ Debugger
├─ Finder
└─ QQ
*/
2) Après avoir terminé l'étape 1, vous devez remplir la méthode nommée initFromDumpString :. Cette méthode est l'opération inverse de l'étape 1. Elle analyse une chaîne de relation parent-enfant basée sur des caractères et renvoie un objet Person initialisé.
走同样的路,发现不同的人生