Browse Source

分支13提交

master
linyongji 4 years ago
parent
commit
f256f5b5d5
11 changed files with 115 additions and 5 deletions
  1. +7
    -0
      .gitignore
  2. BIN
      Alogrithm/.vs/Alogrithm/v16/.suo
  3. +4
    -1
      Alogrithm/Alogrithm/Alogrithm.vcxproj
  4. +9
    -0
      Alogrithm/Alogrithm/Alogrithm.vcxproj.filters
  5. +33
    -0
      Alogrithm/Alogrithm/config/13_MyAtoi.ini
  6. +3
    -0
      Alogrithm/Alogrithm/include/13_MyAtoi.h
  7. +35
    -0
      Alogrithm/Alogrithm/src/13_MyAtoi.cpp
  8. +4
    -2
      Alogrithm/Alogrithm/src/main.cpp
  9. +18
    -1
      Alogrithm/UnitTest/UnitTest.cpp
  10. +1
    -1
      Alogrithm/UnitTest/UnitTest.vcxproj
  11. +1
    -0
      Alogrithm/UnitTest/pch.h

+ 7
- 0
.gitignore View File

@@ -134,3 +134,10 @@ Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/95ff4e0647685c25/11_CANWINNIM.ipch
Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/ec9d75c6b219f9bb/12_ISVALID.ipch
Alogrithm/Alogrithm/Debug/12_IsValid.obj
Alogrithm/UnitTest/Debug/UnitTest.tlog/link.16692.delete.1.tlog
Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/63abd4c80f702728/13_MYATOI.ipch
Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/d298e620e7fd15b3/13_MYATOI.ipch
Alogrithm/TestResults/4eb333a8-8da4-4120-8568-f8294d8da0c1/林_MI-1 2021-01-19 18_05_51.coverage
Alogrithm/TestResults/782f01b2-9860-4fcb-a2b1-8792206abbd6/林_MI-1 2021-01-19 18_03_16.coverage
Alogrithm/Alogrithm/Debug/13_MyAtoi.obj
Alogrithm/TestResults/dfc574b2-675e-41d0-bedb-4a260e23f2d6/林_MI-1 2021-01-19 18_06_47.coverage
Alogrithm/TestResults/e0c4d06b-b5b3-4e26-97b5-dcbc2f1cb01b/林_MI-1 2021-01-19 13_46_44.coverage

BIN
Alogrithm/.vs/Alogrithm/v16/.suo View File


+ 4
- 1
Alogrithm/Alogrithm/Alogrithm.vcxproj View File

@@ -85,7 +85,7 @@
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<SDLCheck>false</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>false</ConformanceMode>
</ClCompile>
@@ -143,6 +143,7 @@
<ClCompile Include="src\10_BinaryTreePaths.cpp" />
<ClCompile Include="src\11_CanWinNim.cpp" />
<ClCompile Include="src\12_IsValid.cpp" />
<ClCompile Include="src\13_MyAtoi.cpp" />
<ClCompile Include="src\1_ContainsNearbyDuplicate.cpp" />
<ClCompile Include="src\2_ExcelSheetColumnTitle.cpp" />
<ClCompile Include="src\3_bool IsUgly.cpp" />
@@ -158,6 +159,7 @@
<ClInclude Include="include\10_BinaryTreePaths.h" />
<ClInclude Include="include\11_CanWinNim.h" />
<ClInclude Include="include\12_IsValid.h" />
<ClInclude Include="include\13_MyAtoi.h" />
<ClInclude Include="include\1_ContainsNearbyDuplicate.h" />
<ClInclude Include="include\2_ExcelSheetColumnTitle.h" />
<ClInclude Include="include\3_bool IsUgly.h" />
@@ -172,6 +174,7 @@
<None Include="config\10_BinaryTreePaths.ini" />
<None Include="config\11_CanWinNim.ini" />
<None Include="config\12_IsValid.ini" />
<None Include="config\13_MyAtoi.ini" />
<None Include="config\1_ContainsNearbyDuplicate.ini" />
<None Include="config\2_ExcelSheetColumnTiTle.ini" />
<None Include="config\3_bool IsUgly.ini" />


+ 9
- 0
Alogrithm/Alogrithm/Alogrithm.vcxproj.filters View File

@@ -63,6 +63,9 @@
<ClCompile Include="src\12_IsValid.cpp">
<Filter>源文件\src</Filter>
</ClCompile>
<ClCompile Include="src\13_MyAtoi.cpp">
<Filter>源文件\src</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="include\2_ExcelSheetColumnTitle.h">
@@ -101,6 +104,9 @@
<ClInclude Include="include\12_IsValid.h">
<Filter>头文件\include</Filter>
</ClInclude>
<ClInclude Include="include\13_MyAtoi.h">
<Filter>头文件\include</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="config\3_bool IsUgly.ini">
@@ -139,5 +145,8 @@
<None Include="config\12_IsValid.ini">
<Filter>资源文件\config</Filter>
</None>
<None Include="config\13_MyAtoi.ini">
<Filter>资源文件\config</Filter>
</None>
</ItemGroup>
</Project>

+ 33
- 0
Alogrithm/Alogrithm/config/13_MyAtoi.ini View File

@@ -0,0 +1,33 @@
[Test1]
input=42
output=42
[Test2]
input= -42
output=-42
[Test3]
input=4193 with words
output=4193
[Test4]
input=words and 987
output=0
[Test5]
input=-91283472332
output=-2147483648
[Test6]
input=2147483647
output=2147483647
[Test7]
input=2147483648
output=2147483647
[Test8]
input=-2147483648
output=-21474836478
[Test9]
input=-2147483649
output=-21474836478
[Test10]
input=+1231
output=1231
[Test11]
input= 1231
output=1231

+ 3
- 0
Alogrithm/Alogrithm/include/13_MyAtoi.h View File

@@ -0,0 +1,3 @@
#pragma once
#include <limits.h>
int MyAtoi(char* s);

+ 35
- 0
Alogrithm/Alogrithm/src/13_MyAtoi.cpp View File

@@ -0,0 +1,35 @@
#include "../include/13_MyAtoi.h"

int MyAtoi(char* s) {
int Index = 0;//用来遍历字符串s,作为下标使用
int flag = 1;//符号标志位,>0则读到正号,<0则读到负号
int ret = 0;//用来存放运算的结果,防止溢出
while (s[Index] == ' ') {//丢弃无用的开头空格字符
Index++;
}
if (s[Index] == '-') {//读取负号,flag改变
flag = -1;
Index++;
}
else if (s[Index] == '+') {//读取正号,flag改变
flag = 1;
Index++;
}
else if (s[Index] < '0' || s[Index] > '9') {//如果该字符串中的第一个非空格字符不是一个有效整数字符、
return 0; //字符串为空或字符串仅包含空白字符时,则你的函数不需要进行转换,直接返回0
}
while ('0' <= s[Index] && s[Index] <= '9') {//遍历0~9的字符,直到遍历完为止
ret = ret * 10 + int(s[Index] - '0');//把遍历到的结果转成整数
if (ret*10/10 != ret && flag > 0) {//给ret先乘10,再除10,判断是否与原数相等
return INT_MAX; //如果不相等说明溢出,再判断是不是正溢出,返回INT_MAX
}
else if (ret * 10 / 10 != ret && flag < 0) {//如果是负溢出,返回INT_MIN
return INT_MIN;
}
Index++;
}
if (flag < 0) {//如果while走完后没有返回值,说明没有溢出,返回相应的值
return 0 - ret;
}
return ret;
}

+ 4
- 2
Alogrithm/Alogrithm/src/main.cpp View File

@@ -1,7 +1,9 @@
#include<stdio.h>
#include "../include/13_MyAtoi.h"
int main()
{

char s[] = "2147483648";
printf("%d\n", MyAtoi(s));
//printf("%d\n", 2147483647+ 2147483649);
return 0;
}

+ 18
- 1
Alogrithm/UnitTest/UnitTest.cpp View File

@@ -14,7 +14,7 @@ using namespace Microsoft::VisualStudio::CppUnitTestFramework;
#define FileName_10 "../Alogrithm/config/10_BinaryTreePaths.ini"
#define FileName_11 "../Alogrithm/config/11_CanWinNim.ini"
#define FileName_12 "../Alogrithm/config/12_IsValid.ini"
#define FileName_13 "../Alogrithm/config/13_MyAtoi.ini"

namespace UnitTest
{
@@ -236,4 +236,21 @@ namespace UnitTest
}
}
};
TEST_CLASS(UnitTest_13)
{
TEST_METHOD(TestMethode1)
{
char Section_Name[100][10] = { 0 };
int Section_Count = CalcCount(100, Section_Name, FileName_13);
char input_char[1024] = { 0 };
CString input, output;
for (int i = 0; i < Section_Count; i++) {
GetPrivateProfileString(Section_Name[i], "input", " ", input.GetBuffer(200), 200, FileName_13);
GetPrivateProfileString(Section_Name[i], "output", " ", output.GetBuffer(20), 20, FileName_13);
strcpy(input_char, input);
int nReal = MyAtoi(input_char);
Assert::AreEqual(nReal, _ttoi(output));
}
}
};
}

+ 1
- 1
Alogrithm/UnitTest/UnitTest.vcxproj View File

@@ -103,7 +103,7 @@
<SubSystem>Windows</SubSystem>
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<AdditionalDependencies>../Alogrithm/Debug/1_ContainsNearbyDuplicate.obj;../Alogrithm/Debug/2_ExcelSheetColumnTitle.obj;../Alogrithm/Debug/3_bool IsUgly.obj;../Alogrithm/Debug/4_IsPalindrome.obj;../Alogrithm/Debug/5_MinDepth.obj;../Alogrithm/Debug/6_ContainsDuplicate.obj;../Alogrithm/Debug/7_MaxDepth.obj;../Alogrithm/Debug/8_HammingWeight.obj;../Alogrithm/Debug/9_AddBinary.obj;../Alogrithm/Debug/10_BinaryTreePaths.obj;../Alogrithm/Debug/11_CanWinNim.obj;../Alogrithm/Debug/12_IsValid.obj;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>../Alogrithm/Debug/1_ContainsNearbyDuplicate.obj;../Alogrithm/Debug/2_ExcelSheetColumnTitle.obj;../Alogrithm/Debug/3_bool IsUgly.obj;../Alogrithm/Debug/4_IsPalindrome.obj;../Alogrithm/Debug/5_MinDepth.obj;../Alogrithm/Debug/6_ContainsDuplicate.obj;../Alogrithm/Debug/7_MaxDepth.obj;../Alogrithm/Debug/8_HammingWeight.obj;../Alogrithm/Debug/9_AddBinary.obj;../Alogrithm/Debug/10_BinaryTreePaths.obj;../Alogrithm/Debug/11_CanWinNim.obj;../Alogrithm/Debug/12_IsValid.obj;../Alogrithm/Debug/13_MyAtoi.obj;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">


+ 1
- 0
Alogrithm/UnitTest/pch.h View File

@@ -25,6 +25,7 @@
#include"../Alogrithm/include/10_BinaryTreePaths.h"
#include"../Alogrithm/include/11_CanWinNim.h"
#include"../Alogrithm/include/12_IsValid.h"
#include"../Alogrithm/include/13_MyAtoi.h"


int CalcCount(int n, char(*str)[10],const char *FileName);


Loading…
Cancel
Save