题目:给定一个字符串,一个字符串的子串,将第一个字符串反转,但保留子串的顺序不变。
例如:输入第一个字符串: “Welcome you, my friends.”; 输入子串: “you”; 输出:“.sdneirf ym, you emocleW”
方法1: 使用栈,时间复杂度O(n),空间复杂度O(n)
具体实现:
#include<iostream>
#include<cstring>
#include<stack>
using namespace std;
void reverse(const char *str, const char *token, char *result) {
const char *head = str, *pToken = token, *rear = str;
stack<char> stack;
if(str == NULL && token == NULL && result == NULL) {
return;
}
while(*head != '\0') {
while(*head != '\0' && *head == *pToken) {
head++;
pToken++;
}
if(*pToken == '\0') {
for(const char *p = head - 1