看板 C_and_CPP 關於我們 聯絡資訊
謝謝上一篇作者的改正,看過題目之後應該有許多人知道小弟正在刷 Leetcode 的題目 但是小弟在 Run Code 的時候可以通過,要 submit solution 的時候卻出現 runtime error 應該是有 overflow 的問題,是否有板大可以幫小弟看看哪裡出問題呢? 或是告知小弟要怎麼檢查這類的問題 感激不盡,謝謝各位 修改程式碼如下: // ReverseVowelsOfString.cpp : 定義主控台應用程式的進入點。 // #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <stdbool.h> bool isVowels(char s) { if (s >='A'&& s <='Z') s += 'a' - 'A'; return s == 'a' || s == 'e' || s == 'i' || s == 'o' || s == 'u'; } char* reverseVowels(char* s) { int L = 0, R = strlen(s) - 1; char tempChar = NULL; char *Array = (char *)malloc(strlen(s)*sizeof(char)+1); for (int i = 0; i < strlen(s); i++) Array[i] = *(s + i); while (L < R) { while (!isVowels(Array[L])) L++; while (!isVowels(Array[R])) R--; if (L < R) { tempChar = Array[L]; Array[L] = Array[R]; Array[R] = tempChar; } L++; R--; } *(Array + strlen(s)) = '\0'; return Array; } int main(int argc, char* argv[]) { char *returnStr = NULL; returnStr = reverseVowels("Hello"); printf("returnStr = %s\n", returnStr); returnStr = reverseVowels("LeetCode"); printf("returnStr = %s\n", returnStr); free(returnStr); system("pause"); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.220.255.38 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1462953417.A.0C6.html ※ 編輯: EngRookie (61.220.255.38), 05/11/2016 15:59:37 ※ 編輯: EngRookie (61.220.255.38), 05/11/2016 16:00:33
bibo9901: 試試 reverseVowels("sdfghjkl") 05/11 16:11
EngRookie: 可以 run on PC,但是在 leetcode 網站上似乎沒有output 05/11 16:20
EngRookie: 謝謝 我找到問題了 05/11 16:23
EdareuqSam: 問題是什麼? 05/11 16:30
sb107912: input字串沒母音 會出問題? 05/11 16:30
hichcock: 這簡單~ 放一個假的就好了 05/11 16:33
EngRookie: 判斷式改成 while (L < R && !isVowels(Array[L])) 05/11 16:43
hichcock: 呵呵~~ 抱歉, 我比較懶~ 請不要理我的建議 :P 05/11 16:46
MOONRAKER: 不錯 放一個假的 結束前把它幹掉 05/12 00:42