LeetCode 709.To Lower Case
阿新 • • 發佈:2019-03-10
字母 put NPU 轉化 沒有 運行 des image 分享
Description
Implement function ToLowerCase() that has a string parameter str, and returns the same string in lowercase.
Example 1:
Input: "Hello"
Output: "hello"
Example 2:
Input: "here"
Output: "here"
Example 3:
Input: "LOVELY"
Output: "lovely"
My Submission
char* toLowerCase(char* str) {
int i = 0;
while(str[i] != '\0')
{
if(str[i] >= 'A' && str[i] <= 'Z')
str[i] = str[i] + 32;
i++;
}
return str;
}
解題思路
轉化大小寫,首先想到ASCII碼字母大小寫之間相差32,字符串又是以‘\0‘
做為結束標識符的,所以循環當字符串沒到末尾時,如果有大寫字母就加上32並賦給當前字符,最後循環結束後返回指針。
遇到問題
剛開始不記得是小寫字母大以及大小寫相差多少,小寫字母 = 大寫字母 + 32
;開始WA了一發是因為未判斷字符等於A和Z的情況,寫成了小於和大於。
Sample Submission
sample 0 ms submission
char* toLowerCase(char* str) { int c = 0; while (*(str+c) != '\0') { if (*(str+c) >= 'A' && *(str+c) <= 'Z') { *(str+c) = *(str+c) + 32; } c++; } return str; }
- 指針操作可以加快運行速度?
- 將
*(str+c) = *(str+c) + 32
換成*(str+c) += 32
會增加運行時間?
sample 6460 kb submission
char* toLowerCase(char* str) {
int i;
for(i=0;str[i];i++){
if(str[i]>='A'&&str[i]<='Z')
str[i]+='a'-'A';
}
return str;
}
- 並沒有減少內存空間,懷疑LeetCode判斷有問題???
LeetCode 709.To Lower Case