精華區beta Marginalman 關於我們 聯絡資訊
1371. Find the Longest Substring Containing Vowels in Even Counts 就給一個字串s 請回傳最長的子字串的長度 該子字串內所有母音出現的次數都是偶數 母音有a、e、i、o、u 思路: 假設num=0 當你遇到母音 a : num ^= 1 e : num ^= 2 i : num ^= 4 o : num ^= 8 u : num ^= 16 並且記錄每個num值第一次出現的位置 這樣就可以知道那些子字串裡母音出現的次數是偶數了 c code : #define max(x,y) (x>y? x:y) int findTheLongestSubstring(char* s) { int *rec=(int*)(calloc(32,sizeof(int))),n=strlen(s),res=0; char xor =0 ; rec[0]=-1; for (int i=1;i<32;i++){ rec[i]=-2; } for (int i=0;i<n;i++){ switch (s[i]){ case 97 : xor ^= 1 ; break; case 101 : xor ^= 2 ; break; case 105 : xor ^= 4 ; break; case 111 : xor ^= 8 ; break; case 117 : xor ^= 16 ; break; } if (rec[(int)(xor)]==-2){ rec[(int)(xor)]=i; } else { res=max(res,(i-rec[(int)(xor)])); } } return res; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.162.52 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1726401870.A.946.html
oin1104: 送我模型 09/15 20:06
JIWP: ok 09/15 20:06
sustainer123: 幫我去面試 09/15 20:08
JIWP: ok 09/15 20:10