本題思路:選取輸入的數個字串中長度最小的那乙個,然後列舉其子串,和子串的反串,然後對比輸入的字串驗證結果。
關於這一題一定要記住幾個常用的字串函式:
1. strncpy: strncpy(substr,a+j,i); 這裡substr為複製到的字串,a+j為串頭位址,i為要複製的子串長度。
2.strrev: strrev(revsub); 這樣就行了,反轉之後無需再做多餘操作。
3.strstr strstr(char *s1,char *s2) 如果s2是s1的乙個子串,返回其在s1中第一次出現的位置,否則返回null。
4.strchr(char *s,char c) 如果s中包含字元c,則返回乙個s中第一次出現該字元的指標,否則返回null。
千萬注意strncpy取字串時,需在所取字串末尾加'\0' !
總時間限制:
1000ms
記憶體限制:
65536kb
描述現在有一些由英文本元組成的大小寫敏感的字串,你的任務是找到乙個最長的字串x,使得對於已經給出的字串中的任意乙個y,x或者是y的子串,或者x中的字元反序之後得到的新字串是y的子串。
輸入輸入的第一行是乙個整數t (1 <= t <= 10),t表示測試資料的數目。對於每一組測試資料,第一行是乙個整數n (1 <= n <= 100),表示已經給出n個字串。接下來n行,每行給出乙個長度在1和100之間的字串。
輸出對於每一組測試資料,輸出一行,給出題目中要求的字串x的長度。
樣例輸入
2樣例輸出3abcd
bcdff
brcd
2rose
orchid
22
#include#include#includechar str[101][101];
int n;
bool flag; //該標誌判定是否存在公共
void reverse(char a[101])
a[length]=0;
}int judgemin(char a[101])
}if(flag==true)
return i;
} }return 0;
}int main()
int minlen=101;
char min[101];
for(int i=1;i<=n;i++)
}int ans=judgemin(min);
printf("%d\n",ans);
} return 0;
}
274 最長字串鏈
題目描述 給出乙個單詞列表,其中每個單詞都由小寫英文本母組成。如果我們可以在 word1 的任何地方新增乙個字母使其變成 word2,那麼我們認為 word1 是 word2 的前身。例如,abc 是 abac 的前身。詞鏈是單詞 word 1,word 2,word k 組成的序列,k 1,其中 ...
字串子串
定義變數 string this is a test 取字串長度,空格也算 從positon處提取字串,positon從0 開始.也可以認為是提取postion之後字串,不算position處 從position位置處取length長的字串.也可以 echo cut c 1 4,取1 4的字元,1 ...
sgu274 Spam filter 字串模擬
題目大意 乙個合法的em ail 位址應該滿足如下條件 1.le tter 為大寫或小寫字母 2.sy mbol 為let ter 或數字或 3.wo rd由若干個sy mbol 連線而成 4.pr efix 由若干個wo rd連線而成,中間以 隔開 5.do main 由兩個或三個le tter ...