第一題如上所示,我的解決思路是首先將原字串反轉,然後利用回文串的特點-對稱性,求出反轉後的字串與原字串的最長公共子串的長度,最後用原字串的長度減去最長公共子串的長度,即是最少要刪除的字串個數。(lcs演算法)
以下是我在牛客網中提交的**:
#include#includeusing namespace std;
int lcs(char* p, char* q)
//初始化二維陣列,將第一行和第一列都置0
for (int i = 0; i < n + 1; ++i)
for (int j = 0; j < m + 1; ++j)
//給二維陣列賦值
第二題如上所示,我的解決思路是先獲取字串的長度,然後從尾部向頭掃瞄,遇到大寫字母時首先將該大寫字母儲存到臨時變數中,然後將該大寫字母與尾部方向的前乙個大寫字母之間的小寫字母依次向頭部方向前移一位,最後將儲存在臨時變數中的該大寫字母放到正確的位置。依照此方法依次處理每乙個大寫字母即可。
以下是我在牛客網中提交的**:
#include#includeusing namespace std;
char* capitalpostposition(char* a)
a[size-capitalcount] = tmp;
--n;
} else
--n;
} return a;
}int main()
else
}repeat.push_back(k);
} return repeat;
} //相鄰差值構成的vector中最小值出現的次數即最小差值的對數
int miningap = *min_element(adjacent.begin(), adjacent.end());
vector::iterator it_adj = adjacent.begin();
for (; it_adj != adjacent.end(); ++it_adj) }
void pairsofminmaxgap(vectorsource)
} else }
int main()
return 0;
}
騰訊2017暑期實習生程式設計題
刷題 pragma warning disable 4996 遮蔽警告 構造回文 題目描述 給定乙個字串s,你可以從中刪除一些字元,使得剩下的串是乙個回文串。如何刪除才能使得回文串最長呢?輸出需要刪除的字元個數。思路 其實就是,原字串翻轉之後的字串跟原字串的最長公共子串行 那麼利用動態規劃的最長公共...
騰訊2017暑期實習生程式設計題
構造回文串 給定乙個字串s,你可以從中刪除一些字元,使得剩下的串是乙個回文串。如何刪除才能使得回文串最長呢?輸出需要刪除的字元個數。輸入描述 輸入資料有多組,每組包含乙個字串s,且保證 1 s.length 1000.輸出描述 對於每組資料,輸出乙個整數,代表最少需要刪除的字元個數。示例1 輸入 a...
騰訊2017暑期實習生程式設計題
程式設計題 構造回文 時間限制 1秒 空間限制 32768k 給定乙個字串s,你可以從中刪除一些字元,使得剩下的串是乙個回文串。如何刪除才能使得回文串最長呢?輸出需要刪除的字元個數。輸入描述 輸入資料有多組,每組包含乙個字串s,且保證 1 s.length 1000.輸出描述 對於每組資料,輸出乙個...