分析:
先牢記兩點单匣,模式串中矮冬,‘ . ’表示任意一個字符;‘ * ’表示它前面出現(xiàn)的字符可以出現(xiàn)任意次(含0次)
接著柠偶,設字符串為str情妖,模式串為pattern,那么诱担,
首先毡证,如果模式串的下一個字符為‘ * ’:
- 如果當前字符匹配,那么有三種情況需要考慮——
(1)模式串當前字符出現(xiàn)0次蔫仙,則str->str[i], pattern[j]->pattern[j+2]料睛;
(2)模式串當前字符出現(xiàn)1次,則str->str[i+1], pattern[j]->pattern[j+2]摇邦;
(3)模式串當前字符出現(xiàn)2次及以上恤煞,則str[i]->str[i+1], pattern[j]->pattern[j]; - 如果當前字符不匹配涎嚼,則只能讓‘ * ’表示當前字符出現(xiàn)0次阱州,即str[i]->str[i], pattern[j]->pattern[j+2];
其次法梯,如果模式串下一個字符不為‘ * ’——
如果當前字符匹配苔货,則str = str+1, pattern = pattern+1
分析
在數(shù)值之前可能有一個表示正負的’-‘或者’+’。
接下來是若干個0到9的數(shù)位表示數(shù)值的整數(shù)部分(在某些小數(shù)里可能沒有數(shù)值的整數(shù)部分)立哑。
如果數(shù)值是一個小數(shù)夜惭,那么在小數(shù)點后面可能會有若干個0到9的數(shù)位表示數(shù)值的小數(shù)部分。
如果數(shù)值用科學計數(shù)法表示铛绰,接下來是一個’e’或者‘E’诈茧,以及緊跟著的一個整數(shù)(可以有正負號)表示指數(shù)。
分析
1捂掰,去重敢会,首先考慮的就是哈希表了
2,鍵值(Key)是字符的ASCII值这嚣,Value是表述了字符出現(xiàn)的早晚和是否重復
3鸥昏,要求的是第一個不重復字符,我們就用Key=-1去重姐帚,接著用Key++來區(qū)分字符出現(xiàn)的早晚程度吏垮。
替換空格
思路很簡單,詳情見代碼