有個壞掉的鍵盤會不時按下”Home”鍵與"End"鍵。本題給定鍵盤輸出的字串(包含Home與End),要求輸出該字串顯示的內容。
用deque模擬插入字串
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
#define pf push_front
#define ft first
#define sec second
#define pr pair<int,int>
#define ISCC ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
using namespace std;
const ll MOD = 1e9+7;
int t ,n ,m ,ok ,now;
string s;
int main()
{
int now=0;
while(getline(cin,s))
{
deque<string> dqu;
string tp = ""; now = 1;
for(int i=0 ;i<s.size() ;i++)
{
if(s[i]=='[' || s[i]==']')
{
if(now) dqu.pb(tp);
else dqu.push_front(tp);
now = (s[i]==']'); tp = "";
}
else tp += s[i];
}
if(now) dqu.pb(tp);
else dqu.push_front(tp);
for(auto v : dqu) cout << v; cout << '\n';
}
return 0;
}
題目大意 有一深度為D的滿二元樹,依序丟球下去 每個節點都有一個標記,一開始是往左,當被經過時,就會換成右,再被經過一次,就切換成左,以此類推,直到最底層(葉節點) 輸出第I顆球最後會停在哪個節點 題解 I的二進位表示第I顆球"後"的狀態,因此看I-1的每一位決定往左還右 #include <bits/stdc++.h> #define ll long long
Jun 26, 2021題目大意 有一個最多9*9個的迷宮。輸入起點、離開起點時的朝向和終點,每個點有限制能走的方向,輸出最短路。 要注意初始狀態是 剛剛離開入口 ,所以即使出口和入口重合,最短路也不爲空。 題解 有夠麻煩又一堆問題的BFS。因為有朝向哪邊的問題,所以需要多記錄現在的朝向,整體來說就是多一維的BFS。然後設計一下dir陣列對應左、右、前的關係。一邊走一邊紀錄父節點,最後倒著推回去輸出路徑 #include <iostream> #include <string.h> #include <queue>
Jun 13, 2021題目大意 給定H個16進位、長度為W的字串,用其二進位表示6種象形文字。如果是同一個象形文字,則黑色的部分會上下左右相連,而象形文字間不會相碰。要求辨識圖形中所有的象形文字,並按照字典序輸出。 題解 可以發現每種文字含有的空格數不同,因此可以藉由空格數辨識文字。 做三種BFS。首先將象形文字外部的空白去除,接著將文字的黑色部分跑一遍,此時碰到內部的白色格時再做一次BFS並記錄有幾塊白色。 #include <bits/stdc++.h> #define ll long long #define pb push_back
Jun 9, 2021題目大意 給一個二元樹的前序式,要求從左到右輸出垂直節點的權值和 題解 直接用preorder邊輸入邊加總即可。 要注意輸出格式最後不能有空格。還有,我原本想先建圖在跑一遍的,後來才發現節點的值可能很大QQ #include <bits/stdc++.h> #define ll long long #define pb push_back
Jun 3, 2021or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up