中職網(wǎng)站建設(shè)課件公關(guān)負(fù)面處理公司
目錄
1. 與浮點(diǎn)數(shù)A最接近的分?jǐn)?shù)B/C?🌟
2. 比較版本號(hào)??🌟🌟
3. 無重復(fù)字符的最長子串??🌟🌟
🌟 每日一練刷題專欄?🌟
Golang每日一練 專欄
Python每日一練 專欄
C/C++每日一練 專欄
Java每日一練 專欄
1. 與浮點(diǎn)數(shù)A最接近的分?jǐn)?shù)B/C
已知一個(gè)浮點(diǎn)數(shù)A(0<A<5),求它由哪兩個(gè)整數(shù)B/C相除的值最接近,有相同值時(shí)要求B最小
例如:
A=0.2
B=1 C=5
以下程序?qū)崿F(xiàn)了這一功能,請(qǐng)你填補(bǔ)空白處內(nèi)容:
```c++
#include <stdio.h>
#include <math.h>
int main()
{
? ? float A = 0.2f;
? ? int x = 0;
? ? if (A < 0)
? ? {
? ? ? ? x = 1;
? ? ? ? A = 1 / A;
? ? }
? ? float delta = 1;
? ? int B = 1, C = 1;
? ? do
? ? {
? ? ? ? ____________;
? ? } while (delta > 0.000001);
? ? if (x == 0)
? ? ? ? printf("%d / %d", C, B - 1);
? ? else
? ? ? ? printf("%d / %d", B - 1, C);
? ? return 0;
}
```
出處:
https://edu.csdn.net/practice/25454313
代碼:
#include <stdio.h>
#include <math.h>
int main()
{float A = 0.3333f;int x = 0;if (A < 0){x = 1;A = 1 / A;}float delta = 1;int B = 1, C = 1;do{C = (int)(B * A);delta = fabs(C / (float)B - A);B++;} while (delta > 0.000001);if (x == 0)printf("%d / %d", C, B - 1);elseprintf("%d / %d", B - 1, C);return 0;
}
輸出:
略
2. 比較版本號(hào)
給你兩個(gè)版本號(hào)?version1
?和?version2
?,請(qǐng)你比較它們。
版本號(hào)由一個(gè)或多個(gè)修訂號(hào)組成,各修訂號(hào)由一個(gè)?'.'
?連接。每個(gè)修訂號(hào)由?多位數(shù)字?組成,可能包含?前導(dǎo)零?。每個(gè)版本號(hào)至少包含一個(gè)字符。修訂號(hào)從左到右編號(hào),下標(biāo)從 0 開始,最左邊的修訂號(hào)下標(biāo)為 0 ,下一個(gè)修訂號(hào)下標(biāo)為 1 ,以此類推。例如,2.5.33
?和?0.1
?都是有效的版本號(hào)。
比較版本號(hào)時(shí),請(qǐng)按從左到右的順序依次比較它們的修訂號(hào)。比較修訂號(hào)時(shí),只需比較?忽略任何前導(dǎo)零后的整數(shù)值?。也就是說,修訂號(hào)?1
?和修訂號(hào)?001
?相等?。如果版本號(hào)沒有指定某個(gè)下標(biāo)處的修訂號(hào),則該修訂號(hào)視為?0
?。例如,版本?1.0
?小于版本?1.1
?,因?yàn)樗鼈兿聵?biāo)為?0
?的修訂號(hào)相同,而下標(biāo)為?1
?的修訂號(hào)分別為?0
?和?1
?,0 < 1
?。
返回規(guī)則如下:
- 如果?
version1?>?version2
?返回?1
, - 如果?
version1?<?version2
?返回?-1
, - 除此之外返回?
0
。
示例 1:
輸入:version1 = "1.01", version2 = "1.001" 輸出:0 解釋:忽略前導(dǎo)零,"01" 和 "001" 都表示相同的整數(shù) "1"
示例 2:
輸入:version1 = "1.0", version2 = "1.0.0" 輸出:0 解釋:version1 沒有指定下標(biāo)為 2 的修訂號(hào),即視為 "0"
示例 3:
輸入:version1 = "0.1", version2 = "1.1" 輸出:-1 解釋:version1 中下標(biāo)為 0 的修訂號(hào)是 "0",version2 中下標(biāo)為 0 的修訂號(hào)是 "1" 。0 < 1,所以 version1 < version2
示例 4:
輸入:version1 = "1.0.1", version2 = "1" 輸出:1
示例 5:
輸入:version1 = "7.5.2.4", version2 = "7.5.3" 輸出:-1
提示:
1 <= version1.length, version2.length <= 500
version1
?和?version2
?僅包含數(shù)字和?'.'
version1
?和?version2
?都是?有效版本號(hào)version1
?和?version2
?的所有修訂號(hào)都可以存儲(chǔ)在?32 位整數(shù)?中
出處:
https://edu.csdn.net/practice/25454314
代碼:
#include <bits/stdc++.h>
using namespace std;
class Solution
{
public:int compareVersion(string version1, string version2){int val1, val2;int idx1 = 0, idx2 = 0;while (idx1 < version1.length() || idx2 < version2.length()){val1 = 0;while (idx1 < version1.length()){if (version1[idx1] == '.'){++idx1;break;}val1 = val1 * 10 + (version1[idx1] - '0');idx1++;}val2 = 0;while (idx2 < version2.length()){if (version2[idx2] == '.'){idx2++;break;}val2 = val2 * 10 + (version2[idx2] - '0');idx2++;}if (val1 > val2)return 1;if (val1 < val2)return -1;}return 0;}
};int main()
{Solution s;string version1 = "1.01", version2 = "1.001";cout << s.compareVersion(version1, version2) << endl;version1 = "1.0"; version2 = "1.0.0";cout << s.compareVersion(version1, version2) << endl;version1 = "0.1"; version2 = "1.1";cout << s.compareVersion(version1, version2) << endl;version1 = "1.0.1"; version2 = "1";cout << s.compareVersion(version1, version2) << endl;version1 = "7.5.2.4"; version2 = "7.5.3";cout << s.compareVersion(version1, version2) << endl;return 0;
}
輸出:
0
0
-1
1
-1
3. 無重復(fù)字符的最長子串
給定一個(gè)字符串,請(qǐng)你找出其中不含有重復(fù)字符的?最長子串?的長度。
示例?1:
輸入: s = "abcabcbb" 輸出: 3 解釋: 因?yàn)闊o重復(fù)字符的最長子串是 "abc",所以其長度為 3。
示例 2:
輸入: s = "bbbbb" 輸出: 1 解釋: 因?yàn)闊o重復(fù)字符的最長子串是 "b",所以其長度為 1。
示例 3:
輸入: s = "pwwkew" 輸出: 3 解釋: 因?yàn)闊o重復(fù)字符的最長子串是?"wke",所以其長度為 3。? 請(qǐng)注意,你的答案必須是 子串 的長度,"pwke"?是一個(gè)子序列,不是子串。
示例 4:
輸入: s = "" 輸出: 0
提示:
0 <= s.length <= 5 * 10^4
s
?由英文字母、數(shù)字、符號(hào)和空格組成
以下程序?qū)崿F(xiàn)了這一功能,請(qǐng)你填補(bǔ)空白處內(nèi)容:
```c++
int hset[128];
int lengthOfLongestSubstring(char *s)
{
? ? int i = 0, j = 0;
? ? int m = 0;
? ? memset(hset, 0, sizeof hset);
? ? for (; s[j]; j++)
? ? {
? ? ? ? ___________________;
? ? }
? ? return m;
}
```
出處:
https://edu.csdn.net/practice/25454315
代碼:
#include <bits/stdc++.h>
using namespace std;int hset[128];
int lengthOfLongestSubstring(char *s)
{int i = 0, j = 0;int m = 0;memset(hset, 0, sizeof hset);for (; s[j]; j++){i = hset[s[j]] > i ? hset[s[j]] : i;m = m > j - i + 1 ? m : j - i + 1;hset[s[j]] = j + 1;}return m;
}int main()
{char *s = "abcabcbb";cout << lengthOfLongestSubstring(s) << endl;char *s2 = "bbbbb";cout << lengthOfLongestSubstring(s2) << endl;char *s3 = "pwwkew";cout << lengthOfLongestSubstring(s3) << endl;return 0;
}
輸出:
3
1
3
🌟 每日一練刷題專欄?🌟
? 持續(xù),努力奮斗做強(qiáng)刷題搬運(yùn)工!
👍 點(diǎn)贊,你的認(rèn)可是我堅(jiān)持的動(dòng)力!?
🌟?收藏,你的青睞是我努力的方向!?
? 評(píng)論,你的意見是我進(jìn)步的財(cái)富!??
??主頁:https://hannyang.blog.csdn.net/
![]() | Golang每日一練 專欄 |
![]() | Python每日一練 專欄 |
![]() | C/C++每日一練 專欄 |
![]() | Java每日一練 專欄 |