模擬 翻轉笑臉

2021-08-22 16:39:30 字數 993 閱讀 7253

【題目】

笑臉description

durong經常使用telegram和外國友人聊天,有一天他的外國友人發給他一段字串,裡面只包含 '(' , ':' , ')' 這幾個字元。

durong猜測 :)代表笑臉。 他現在想要恰好翻轉乙個字首,使得笑臉最多。

翻轉的定義是把 s[i...j]換成 s[j...i], 並且把 '(' 換成 ')', ')' 換成 '('。

比如 ":):((" 翻轉以後是 ")):(:"

input

第一行乙個n代表字串長度。

第二行乙個只包含)(:三種字元的字串。

1 <= n <= 2e5

output

輸出乙個數,代表恰好翻轉乙個字首以後的最多笑臉數。

sample input 1 

10

:(:):(:):)

sample output 1

4
【思路】1存這位之前有多少個反著的笑臉,2之後有多少個正著的笑臉,ans=1+2;

特判1:當開頭是':',而後面不是笑臉,而i之後又有乙個')'可以湊出乙個:),ans++

特判2:當i是':',i+1是')'的時候,翻轉會拆散:),ans--

【**】

#includeusing namespace std;

const int m=200005;

int main()

sum1[i]=s;

}s=0;

for(int i=n-2;i>=0;i--)

sum2[i]=s;

}int ans=0;

for(int i=0;i}

else

}ans=max(ans,aans);

}ans=max(ans,sum1[n-1]);

ans=max(ans,sum2[0]);

printf("%d\n",ans);

}

實現 笑臉 Crack

直接載入od,觀察發現彈窗可能為messagebox,那麼進行對windows api函式的搜尋 跟進反彙編視窗跟隨函式,來到這裡,直接進行斷點操作 執行程式,跑到斷點處,如下圖 接著發現堆疊視窗有呼叫call,這個call自然是messagebox的函式,那麼直接反彙編視窗對這個call進行跟隨,...

矩陣翻轉(陣列模擬)

曉萌最近在做乙個翻轉的應用,你可能也知道,其實是由乙個個的點組成的。於是,曉萌想先做乙個可以翻轉矩陣的程式,來解決他問題的核心部分。輸入第一行包括由空格分開的整數 m,n,t 0 n,m 200 m,n,t 0之後的 mm 行,每行包括由空格分隔的 nn 個整數,依次為輸入矩陣的每一行的資料。輸出包...

用Python畫笑臉

開心一下,喵 很早之前畫的,放上來做個紀念吧 如下 from turtle import screensize 600,600 speed 10 def arc initial degree,step,rotate,rangenum seth initial degree for i in rang...