基礎題:
1、兩個棧實現乙個佇列
思路:棧的特點:後進先出
佇列的特點:先進先出
兩個棧可將乙個棧用於入資料,另乙個用於出資料;
**:
#define _crt_secure_no_warnings
#include#includetemplate class myqueue
void pop()//刪除頭部資料
}s2.pop();
} t& front()//取隊首資料
}return s2.top();
} t& back() //取隊尾資料
}return s1.top();
} bool empty()
size_t size()
private:
stacks1; //入資料
stacks2; //出資料
};
測試:
void testqueue()
else
}void pop()
while(p1->size() > 1)
p1->pop();
} t top()
while(p1->size() > 1)
t top = p1->front();
p2->push(top);
p1->pop();
return top;
} size_t size()
bool empty()
private:
queueq1;
queueq2;
};
測試:
void teststack()
{ mystacks;
s.push(1);
();
s.push(2);
();
s.push(3);
s.push(4);
s.pop ();
while(!s.empty())
{ cout<
附加題:
替換字串中的空格為$$$,要求時間複雜度為o(n)
例如:將「talk is cheap show me the code」替換為
「talk$$$is$$$cheap$$$show$$$me$$$the$$$code」.
100天每日一題(day6)
20.有效的括號 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。解答 字典儲存括號,字典的key是左括號,value是右括號,用於判斷。然後用乙個棧不斷匹配括號,一旦不匹配就返回失敗 class ...
AcWing寒假每日一題 Day6剪繩子
有 n 根繩子,第 i 根繩子長度為l i l i li 現在需要m根等長的繩子,你可以對 n 根繩子進行任意裁剪 不能拼接 請你幫忙計算出這 m 根繩子最長的長度是多少。輸入格式 第一行包含2個正整數n m,表示原始繩子的數量和需求繩子的數量。第二行包含n個整數,其中第 i 個整數l i l i ...
AcWing寒假每日一題 Day6剪繩子
有n nn根繩子,第i根繩子長度為lili li,現在需要m mm根等長的繩子,你可以對n nn根繩子進行任意裁剪 不能拼接 請你幫忙計算出這m mm根繩子最長的長度是多少。輸入格式 第一行包含2 22個正整數n m n mn m,表示原始繩子的數量和需求繩子的數量。第二行包含n nn個整數,其中第...