1. 程式人生 > 實用技巧 >字串極值

字串極值

傳送門 luogu U143139

題目描述

給定 \(n\) 個字串。字串中的每個字元僅有大小寫字母組成,且每個字元都被賦予了一定的值。

賦值方法:大寫字母 A ~ Z 的值分別為 \(1\) ~ \(26\) ;小寫字母 a ~ z 的值分別為 \(-1\) ~ \(-26\)

對於每一個字串,要求找到一個連續且非空的區間 ,使得區間內所有字元的值之和最大,並求出此最大值。

輸入格式

第一行輸入一個正整數 \(n\) ,代表字串個數。

下面的 \(n\) 行中,每行輸入一個非空字串。

輸出格式

輸出一個數,代表區間內和的最大值。

樣例輸入

5
AAABC
aaabc
IakIOI
IakNOIp
ThatsNoWayAndImpossible

樣例輸出

8
-1
54
59
23

資料範圍

對於前 \(20\%\) 的資料,保證 \(n=1\) ,字串長度 \(\leq 100\)

對於前 \(40\%\) 的資料,保證 \(1 \leq n\leq4\) ,字串長度 \(\leq 1000\)

對於前 \(70\%\) 的資料,保證 \(1 \leq n\leq10\),字串長度 \(\leq 5000\)

對於 \(100\%\) 的資料,保證 \(1 \leq n\leq20\),字串長度 \(\leq 100000\)

樣例解釋

對於第 \(2\) 個字串,第一個字元 a 即為該字串內值最大的子串。

對於第 \(5\) 個字串,子串 NoW 即為該字串內值最大的子串。