最短的包含字串
給出一個字串,求該字串的一個子串S,S包含A-Z中的全部字母,並且S是所有符合條件的子串中最短的,輸出S的長度。如果給出的字串中並不包括A-Z中的全部字母,則輸出No Solution。
Input
第1行,1個字串。字串的長度 <= 100000。
Output
輸出包含A-Z的最短子串長度。如果沒有符合條件的子串,則輸出No Solution。
Input示例
BVCABCDEFFGHIJKLMMNOPQRSTUVWXZYZZ
Output示例
28
#include <iostream>
#include <string>
#include <string.h>
using namespace std;
int nums[26];
void fun(string &input)
{
int len = input.length();
memset(nums, 0, sizeof(nums));
int count = 0;
int left = 0;
int right = 0;
int result = len+1;
while (right < len)
{
char cur = input[right];
if (nums[cur-'A'] == 0)
{
nums[cur-'A'] = 1;
count++;
}
else
{
nums[cur-'A']++;
}
if (count == 26)
{
while (nums[input[left]-'A'] > 1)
{
nums[input[left]-'A']--;
left++;
}
int temp = right - left + 1;
if (temp < result)
{
result = temp;
}
}
right++;
}
if (result < len+1)
{
cout << result << endl;
return;
}
cout << "No Solution" << endl;
}
int main()
{
string input;
cin >> input;
fun(input);
return 0;
}
相關文章
- 字串之間的最短距離字串
- PHP字串包含判斷PHP字串
- js如何判斷字串中是否包含指定的子字串JS字串
- 19:字串移位包含問題字串
- 判斷字串中只包含或不包含某種字元的方法字串字元
- PHP 判斷是否包含某字串PHP字串
- 教你幾種PostgreSQL判斷字串是否包含目標字串的方法SQL字串
- JS判斷字串是否包含某字串 indexOf()方法使用JS字串Index
- 字串移位包含的問題——解題筆記字串筆記
- 刪除檔案中包含指定字串的行字串
- 匹配不包含字母的字串的正規表示式字串
- Python查詢包含指定字串的所有Office文件Python字串
- Python查詢包含指定字串的所有檔案Python字串
- 包含中文的字串中擷取前N個字元字串字元
- python怎麼查詢字串中是否包含某個字串Python字串
- 正規表示式如何匹配不包含指定字元的字串字元字串
- 搜尋檔案下包含某個字串的檔案字串
- 第五章 字串專題 ---------------- 5.11 題解:最短摘要的生成字串
- Java使用正規表示式判斷字串中是否包含某子字串Java字串
- PHP判斷一個字串是否包含亂碼PHP字串
- 判斷字串中是否包含Emoji表情程式碼字串
- 正規表示式裡字串”不包含”匹配技巧字串
- 正規表示式:後面不要包含指定的字串內容字串
- PHP 實現字串翻轉(包含中文漢字)的實現PHP字串
- 使用正規表示式找出所有不包含某字串的行字串
- 判斷一個字串是否包含一個子串的方法字串
- 100251. 陣列中的最短非公共子字串 暴力解法陣列字串
- 3297. 統計重新排列後包含另一個字串的子字串數目 I字串
- 3298. 統計重新排列後包含另一個字串的子字串數目 II字串
- 獲得包含中英文字串的自然長度字串
- java中檢驗字串中包含某個字元或欄位的方法Java字串字元
- 用正規表示式提取字串中的字元(包含數字)字串字元
- 如何在js中判斷是否包含某個字串JS字串
- 演算法字串位包含程式設計之美演算法字串程式設計
- 檢查字串是否包含多個關鍵字的高階進階字串
- 如果基不為10,則此字串不能包含減號字串
- 關於字串的一些常用判斷 是否全部為數字 是否包含有數字 是否包含有英文字串
- 最短路