国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

500. Keyboard Row - 是否為鍵盤行序列

2019-11-10 21:55:25
字體:
來源:轉載
供稿:網友

hhttps://leetcode.com/PRoblems/keyboard-row/

分析

判斷所給的各個序列是否是有鍵盤中的一行字母能夠組成的,寫的比較簡單,也沒用什么算法,簡單的字符串匹配加判斷,沒有拆分封裝函數,寫的比較啰嗦,還用了goto,有下面幾點需要關注:

goto語句后面不能直接結束,至少還需要有一條語句,否則會報錯動態二維數組內存申請,先申請行指針,再申請列內存

實現

/** * Return an array of size *returnSize. * Note: The returned array must be malloced, assume caller calls free(). */char** findWords(char** words, int wordsSize, int* returnSize) { int *pYesWordNum; int yesWordCount = 0; int i = 0; int j = 0; int k = 0; int line1Flag = 0; int line2Flag = 0; int line3Flag = 0; int wordLen = 0; int maxWordLen = 0; int retWordNum = 0; char line1[20] = {'q','w','e','r','t','y','u','i','o','p','Q','W','E','R','T','Y','U','I','O','P'}; char line2[18] = {'a','s','d','f','g','h','j','k','l','A','S','D','F','G','H','J','K','L'}; char line3[14] = {'z','x','c','v','b','n','m','Z','X','C','V','B','N','M'}; char **pRetWords; int pp; pYesWordNum = (int *)malloc(wordsSize * sizeof(int)); memset(pYesWordNum, 0, wordsSize * sizeof(int)); for (i = 0; i < wordsSize; i++) { wordLen = (int)strlen(words[i]); if (wordLen > maxWordLen) { maxWordLen = wordLen; } line1Flag = 0; line2Flag = 0; line3Flag = 0; for (j = 0; j < wordLen; j++) { for (k = 0; k < 20; k++) { if (words[i][j] == line1[k]) { if ((line2Flag == 1) || (line3Flag == 1)) { goto nextWord; } line1Flag = 1; goto nextAlphabet; } } for (k = 0; k < 18; k++) { if (words[i][j] == line2[k]) { if ((line1Flag == 1) || (line3Flag == 1)) { goto nextWord; } line2Flag = 1; goto nextAlphabet; } } for (k = 0; k < 14; k++) { if (words[i][j] == line3[k]) { if ((line1Flag == 1) || (line2Flag == 1)) { goto nextWord; } line3Flag = 1; goto nextAlphabet; } } /* 該單詞已檢查,跳轉下一個字母 */ nextAlphabet: pp =1; } /* 該單詞符合,進行記錄 */ pYesWordNum[i] = 1; /* 該單詞不符合,跳轉下一個單詞 */ nextWord: pp =1; } /* 統計符合單詞的數目 */ for (i = 0; i < wordsSize; i++) { if (pYesWordNum[i] == 1) { yesWordCount++; } } pRetWords = (char **)malloc(yesWordCount * sizeof(char *)); for (i = 0; i < yesWordCount; i++) { pRetWords[i]=(char *)malloc(maxWordLen); } for (i = 0; i < yesWordCount; i++) { memset(pRetWords[i], 0, maxWordLen); } for (i = 0; i < wordsSize; i++) { if (pYesWordNum[i] == 1) { strcpy(pRetWords[retWordNum], words[i]); retWordNum++; } } free(pYesWordNum); *returnSize = retWordNum; return pRetWords;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汝南县| 上思县| 济南市| 禹州市| 昔阳县| 沁阳市| 长武县| 抚松县| 永春县| 西平县| 濉溪县| 康平县| 明星| 玛曲县| 武汉市| 嘉鱼县| 永吉县| 奇台县| 荔浦县| 彭州市| 黄山市| 罗平县| 五河县| 黄陵县| 河北省| 榕江县| 扶余县| 余姚市| 汾西县| 五台县| 濉溪县| 潢川县| 聂拉木县| 抚州市| 大悟县| 诸暨市| 南木林县| 射阳县| 蓝山县| 梨树县| 隆昌县|