https://www.hackerrank.com/contests/crescent-practice-3rd-years/challenges/permute-the-string
//Enter your code here. Read input from STDIN. Print output to STDOUT
#import <Foundation/Foundation.h>
@interface Generator : NSObject{
}
-(void)permutateString:(NSString*)str startIndex:(int)start endIndex:(int)end;
-(NSString*)swap:(NSString*)str startIndex:(int)start endIndex:(int)end;
@end
@implementation Generator {
}
-(void)permutateString:(NSString*)str startIndex:(int)start endIndex:(int)end{
int i ;
if(start == end){
printf("%s\n",[str UTF8String]);
}
else{
for( i = start ; i<= end; i++){
str= [self swap:str startIndex:start endIndex:i];
[self permutateString:str startIndex:start+1 endIndex:end];
str= [self swap:str startIndex:start endIndex:i];
}
}
}
-(NSString*)swap:(NSString*)str startIndex:(int)start endIndex:(int)end{
NSMutableArray *array = [NSMutableArray array];
for (int i = 0; i < [str length]; i++) {
NSString *temp = str;
NSString *ch = [temp substringWithRange:NSMakeRange(i, 1)];
[array addObject:ch];
}
NSString *str1 = [array objectAtIndex:start];
NSString *str2 = [array objectAtIndex:end];
[array replaceObjectAtIndex:start withObject:str2];
[array replaceObjectAtIndex:end withObject:str1];
return [array componentsJoinedByString:@""];
}
@end
int main(){
char str[] = "";
scanf("%s",str);
NSString *finalStr = [NSString stringWithFormat:@"%s",str];
int length = [finalStr length]-1 ;
Generator *obj = [[Generator alloc]init];
[obj permutateString:finalStr startIndex:0 endIndex:length];
return 0;
}
//Enter your code here. Read input from STDIN. Print output to STDOUT
#import <Foundation/Foundation.h>
@interface Generator : NSObject{
}
-(void)permutateString:(NSString*)str startIndex:(int)start endIndex:(int)end;
-(NSString*)swap:(NSString*)str startIndex:(int)start endIndex:(int)end;
@end
@implementation Generator {
}
-(void)permutateString:(NSString*)str startIndex:(int)start endIndex:(int)end{
int i ;
if(start == end){
printf("%s\n",[str UTF8String]);
}
else{
for( i = start ; i<= end; i++){
str= [self swap:str startIndex:start endIndex:i];
[self permutateString:str startIndex:start+1 endIndex:end];
str= [self swap:str startIndex:start endIndex:i];
}
}
}
-(NSString*)swap:(NSString*)str startIndex:(int)start endIndex:(int)end{
NSMutableArray *array = [NSMutableArray array];
for (int i = 0; i < [str length]; i++) {
NSString *temp = str;
NSString *ch = [temp substringWithRange:NSMakeRange(i, 1)];
[array addObject:ch];
}
NSString *str1 = [array objectAtIndex:start];
NSString *str2 = [array objectAtIndex:end];
[array replaceObjectAtIndex:start withObject:str2];
[array replaceObjectAtIndex:end withObject:str1];
return [array componentsJoinedByString:@""];
}
@end
int main(){
char str[] = "";
scanf("%s",str);
NSString *finalStr = [NSString stringWithFormat:@"%s",str];
int length = [finalStr length]-1 ;
Generator *obj = [[Generator alloc]init];
[obj permutateString:finalStr startIndex:0 endIndex:length];
return 0;
}
No comments:
Post a Comment