Это - определенно больше тест, а не настоящая проблема. Однако, если нам разрешают сделать некоторое предположение, оно может быть решено в O (1) время. Чтобы сделать это, резкая критика, на которую указывает список, должна быть copyable. Алгоритм как следующее:
у Нас есть сходство со списка:...-> Узел (i-1)-> Узел (i)-> Узел (i+1)->... и мы должны удалить Узел (i).
Псевдокод:
void delete_node(Node* pNode)
{
pNode->Data = pNode->Next->Data; // Assume that SData::operator=(SData&) exists.
Node* pTemp = pNode->Next->Next;
delete(pNode->Next);
pNode->Next = pTemp;
}
Mike.
Разделите строку на компоненты и соедините их пробелом:
NSString *newString = [[myString componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]] componentsJoinedByString:@" "];
Я использую
[...]
myString = [myString stringByReplacingOccurrencesOfString:@"\n\n" withString:@"\n"];
[...]
/ Пол
Разделение строки на компоненты и их повторное соединение - очень сложный способ сделать этот. Я тоже использую тот же метод, о котором говорил Пол. Вы можете заменить любые строки. В дополнение к тому, что сказал Пол, вы можете заменить символы новой строки такими пробелами:
myString = [myString stringByReplacingOccurrencesOfString:@"\n" withString:@" "];