@@ -154,3 +154,11 @@ Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/5ccdb9c64312b2ee/16_REVERSEBITS.ipch | |||||
Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/969dd2cbf6a00d1b/16_REVERSEBITS.ipch | Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/969dd2cbf6a00d1b/16_REVERSEBITS.ipch | ||||
Alogrithm/.vs/Alogrithm/v16/TestStore/0/003.testlog | Alogrithm/.vs/Alogrithm/v16/TestStore/0/003.testlog | ||||
Alogrithm/Alogrithm/Debug/16_ReverseBits.obj | Alogrithm/Alogrithm/Debug/16_ReverseBits.obj | ||||
Alogrithm/TestResults/0850ae84-7979-49f9-8ba5-b749ab8d4aa5/林_MI-1 2021-01-25 15_17_29.coverage | |||||
Alogrithm/TestResults/ebfec9da-5725-4b9b-ae27-dbbecbce3f2d/林_MI-1 2021-01-25 15_16_21.coverage | |||||
Alogrithm/UnitTest/Debug/UnitTest.tlog/link.10456.delete.1.tlog | |||||
Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/13d1a063a12e2911/17_WORDBREAK.ipch | |||||
Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/314d19c9f4445d9e/18_PLUSONE.ipch | |||||
Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/a71bf0a3ca35e643/18_PLUSONE.ipch | |||||
Alogrithm/.vs/Alogrithm/v16/TestStore/0/004.testlog | |||||
Alogrithm/Alogrithm/Debug/18_PlusOne.obj |
@@ -92,7 +92,7 @@ | |||||
</ClCompile> | </ClCompile> | ||||
<Link> | <Link> | ||||
<SubSystem>Console</SubSystem> | <SubSystem>Console</SubSystem> | ||||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||||
<GenerateDebugInformation>DebugFull</GenerateDebugInformation> | |||||
<AdditionalDependencies>../Alogrithm/Debug/2_ExcelSheetColumnTitle.obj;%(AdditionalDependencies)</AdditionalDependencies> | <AdditionalDependencies>../Alogrithm/Debug/2_ExcelSheetColumnTitle.obj;%(AdditionalDependencies)</AdditionalDependencies> | ||||
</Link> | </Link> | ||||
</ItemDefinitionGroup> | </ItemDefinitionGroup> | ||||
@@ -148,6 +148,7 @@ | |||||
<ClCompile Include="src\14_SingleNumber.cpp" /> | <ClCompile Include="src\14_SingleNumber.cpp" /> | ||||
<ClCompile Include="src\15_WordPattern.cpp" /> | <ClCompile Include="src\15_WordPattern.cpp" /> | ||||
<ClCompile Include="src\16_ReverseBits.cpp" /> | <ClCompile Include="src\16_ReverseBits.cpp" /> | ||||
<ClCompile Include="src\18_PlusOne.cpp" /> | |||||
<ClCompile Include="src\1_ContainsNearbyDuplicate.cpp" /> | <ClCompile Include="src\1_ContainsNearbyDuplicate.cpp" /> | ||||
<ClCompile Include="src\2_ExcelSheetColumnTitle.cpp" /> | <ClCompile Include="src\2_ExcelSheetColumnTitle.cpp" /> | ||||
<ClCompile Include="src\3_bool IsUgly.cpp" /> | <ClCompile Include="src\3_bool IsUgly.cpp" /> | ||||
@@ -167,6 +168,7 @@ | |||||
<ClInclude Include="include\14_SingleNumber.h" /> | <ClInclude Include="include\14_SingleNumber.h" /> | ||||
<ClInclude Include="include\15_WordPattern.h" /> | <ClInclude Include="include\15_WordPattern.h" /> | ||||
<ClInclude Include="include\16_ReverseBits.h" /> | <ClInclude Include="include\16_ReverseBits.h" /> | ||||
<ClInclude Include="include\18_PlusOne.h" /> | |||||
<ClInclude Include="include\1_ContainsNearbyDuplicate.h" /> | <ClInclude Include="include\1_ContainsNearbyDuplicate.h" /> | ||||
<ClInclude Include="include\2_ExcelSheetColumnTitle.h" /> | <ClInclude Include="include\2_ExcelSheetColumnTitle.h" /> | ||||
<ClInclude Include="include\3_bool IsUgly.h" /> | <ClInclude Include="include\3_bool IsUgly.h" /> | ||||
@@ -185,6 +187,7 @@ | |||||
<None Include="config\14_SingleNumber.ini" /> | <None Include="config\14_SingleNumber.ini" /> | ||||
<None Include="config\15_WordPattern.ini" /> | <None Include="config\15_WordPattern.ini" /> | ||||
<None Include="config\16_ReverseBits.ini" /> | <None Include="config\16_ReverseBits.ini" /> | ||||
<None Include="config\18_PlusOne.ini" /> | |||||
<None Include="config\1_ContainsNearbyDuplicate.ini" /> | <None Include="config\1_ContainsNearbyDuplicate.ini" /> | ||||
<None Include="config\2_ExcelSheetColumnTiTle.ini" /> | <None Include="config\2_ExcelSheetColumnTiTle.ini" /> | ||||
<None Include="config\3_bool IsUgly.ini" /> | <None Include="config\3_bool IsUgly.ini" /> | ||||
@@ -75,6 +75,9 @@ | |||||
<ClCompile Include="src\16_ReverseBits.cpp"> | <ClCompile Include="src\16_ReverseBits.cpp"> | ||||
<Filter>源文件\src</Filter> | <Filter>源文件\src</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="src\18_PlusOne.cpp"> | |||||
<Filter>源文件\src</Filter> | |||||
</ClCompile> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<ClInclude Include="include\2_ExcelSheetColumnTitle.h"> | <ClInclude Include="include\2_ExcelSheetColumnTitle.h"> | ||||
@@ -125,6 +128,9 @@ | |||||
<ClInclude Include="include\16_ReverseBits.h"> | <ClInclude Include="include\16_ReverseBits.h"> | ||||
<Filter>头文件\include</Filter> | <Filter>头文件\include</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
<ClInclude Include="include\18_PlusOne.h"> | |||||
<Filter>头文件\include</Filter> | |||||
</ClInclude> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<None Include="config\3_bool IsUgly.ini"> | <None Include="config\3_bool IsUgly.ini"> | ||||
@@ -175,5 +181,8 @@ | |||||
<None Include="config\16_ReverseBits.ini"> | <None Include="config\16_ReverseBits.ini"> | ||||
<Filter>资源文件\config</Filter> | <Filter>资源文件\config</Filter> | ||||
</None> | </None> | ||||
<None Include="config\18_PlusOne.ini"> | |||||
<Filter>资源文件\config</Filter> | |||||
</None> | |||||
</ItemGroup> | </ItemGroup> | ||||
</Project> | </Project> |
@@ -0,0 +1,24 @@ | |||||
[Test1] | |||||
Input=1,2,3 | |||||
Output=1,2,4 | |||||
[Test2] | |||||
Input=1,2,9 | |||||
Output=1,3,0 | |||||
[Test3] | |||||
Input=1,9,9,9 | |||||
Output=2,0,0,0 | |||||
[Test4] | |||||
Input=9,9,9,9 | |||||
Output=1,0,0,0,0 | |||||
[Test5] | |||||
Input=1,9,8,8 | |||||
Output=1,9,8,9 | |||||
[Test6] | |||||
Input=1,9,8,9 | |||||
Output=1,9,9,0 | |||||
[Test7] | |||||
Input=0 | |||||
Output=1 | |||||
[Test8] | |||||
Input=2,0,1,1,2,4,1,9,9,9 | |||||
Output=2,0,1,1,2,4,2,0,0,0 |
@@ -0,0 +1,6 @@ | |||||
#pragma once | |||||
#include <stdlib.h> | |||||
#include <stdio.h> | |||||
#include <string.h> | |||||
int* PlusOne(int* digits, int digitsSize, int* returnSize); |
@@ -0,0 +1,24 @@ | |||||
#include "../include/18_PlusOne.h" | |||||
//题目:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 | |||||
// 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 | |||||
// 你可以假设除了整数 0 之外,这个整数不会以零开头。 | |||||
//思路:数组从后往前遍历,如果为9,则该位置0,前一位加1;不为9,则该位加1,返回原数组 | |||||
// 遇到特殊情况如:9,99,999,9999等,申请digitsSize+1个空间,最高位置1,其他位置0,返回数组长度为digitsSize+1 | |||||
int* PlusOne(int* digits, int digitsSize, int* returnSize) { | |||||
for (int i = digitsSize - 1; i >= 0; --i) {//从后往前开始 | |||||
if (digits[i] == 9) { //判断是不是9, | |||||
digits[i] = 0; //是9,赋0 | |||||
} | |||||
else { | |||||
digits[i]++; //如果不是9,则9的前一位加1 | |||||
*returnSize = digitsSize; //数组长度还是原数组的长度 | |||||
return digits; //返回的digits就是需要的的数组 | |||||
} | |||||
} | |||||
//如果上面条件都不满足,说明最高位进位了,比如99,999,9999等 | |||||
int* result = (int*)malloc(sizeof(int) * (digitsSize + 1));//定义一个int *,分配digitsSize+1个空间 | |||||
memset(result, 0, sizeof(int) * (digitsSize + 1));//清空数组,每一位都置0 | |||||
result[0] = 1; //最高位为1,其他位依旧为0 | |||||
*returnSize = digitsSize + 1;//返回数组的长度为原数组长度加1 | |||||
return result; | |||||
} |
@@ -1,9 +1,8 @@ | |||||
#include<stdio.h> | #include<stdio.h> | ||||
#include "../include/16_ReverseBits.h" | |||||
int main() | int main() | ||||
{ | { | ||||
printf("%ld\n", ReverseBits(1)); | |||||
return 0; | |||||
} | } |
@@ -18,6 +18,7 @@ using namespace Microsoft::VisualStudio::CppUnitTestFramework; | |||||
#define FileName_14 "../Alogrithm/config/14_SingleNumber.ini" | #define FileName_14 "../Alogrithm/config/14_SingleNumber.ini" | ||||
#define FileName_15 "../Alogrithm/config/15_WordPattern.ini" | #define FileName_15 "../Alogrithm/config/15_WordPattern.ini" | ||||
#define FileName_16 "../Alogrithm/config/16_ReverseBits.ini" | #define FileName_16 "../Alogrithm/config/16_ReverseBits.ini" | ||||
#define FileName_18 "../Alogrithm/config/18_PlusOne.ini" | |||||
namespace UnitTest | namespace UnitTest | ||||
@@ -310,4 +311,26 @@ namespace UnitTest | |||||
} | } | ||||
} | } | ||||
}; | }; | ||||
TEST_CLASS(UnitTest_18) | |||||
{ | |||||
TEST_METHOD(TestMethode1) | |||||
{ | |||||
char Section_Name[100][10] = { 0 }; | |||||
int Section_Count = CalcCount(100, Section_Name, FileName_18); | |||||
int input_count = 0, output_count = 0, returnSize = 0; | |||||
int* input_value; | |||||
int* output_value; | |||||
CString input,output; | |||||
for (int i = 0; i < Section_Count; i++) { | |||||
GetPrivateProfileString(Section_Name[i], "Input", " ", input.GetBuffer(200), 200, FileName_18); | |||||
GetPrivateProfileString(Section_Name[i], "Output", " ", output.GetBuffer(200), 200, FileName_18); | |||||
input_value = str_device(input, &input_count); | |||||
output_value = str_device(output, &output_count); | |||||
int* nReal = PlusOne(input_value, input_count, &returnSize); | |||||
for (int i = 0; i < input_count; i++) { | |||||
Assert::AreEqual(nReal[i], output_value[i]); | |||||
} | |||||
} | |||||
} | |||||
}; | |||||
} | } |
@@ -103,7 +103,7 @@ | |||||
<SubSystem>Windows</SubSystem> | <SubSystem>Windows</SubSystem> | ||||
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> | <AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> | ||||
<GenerateDebugInformation>DebugFull</GenerateDebugInformation> | <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;../Alogrithm/Debug/13_MyAtoi.obj;../Alogrithm/Debug/14_SingleNumber.obj;../Alogrithm/Debug/15_WordPattern.obj;../Alogrithm/Debug/16_ReverseBits.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;../Alogrithm/Debug/14_SingleNumber.obj;../Alogrithm/Debug/15_WordPattern.obj;../Alogrithm/Debug/16_ReverseBits.obj;../Alogrithm/Debug/18_PlusOne.obj;%(AdditionalDependencies)</AdditionalDependencies> | |||||
</Link> | </Link> | ||||
</ItemDefinitionGroup> | </ItemDefinitionGroup> | ||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> | <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> | ||||
@@ -54,7 +54,7 @@ int CalcCount(int n, char(*str)[10],const char *FileName) | |||||
int* str_device(CString str, int* value_count) | int* str_device(CString str, int* value_count) | ||||
{ | { | ||||
char* token; //存放被切割后的第一个子串 | char* token; //存放被切割后的第一个子串 | ||||
static int Section_devide[500];//存放字符切割完成以后的数组元素值 | |||||
int* Section_devide = (int*)malloc(sizeof(int) * 200);//存放字符切割完成以后的数组元素值 | |||||
char Section_value[500] = { 0 };//存放nums转换成string类型的结果 | char Section_value[500] = { 0 };//存放nums转换成string类型的结果 | ||||
memset(Section_value, 0, sizeof(char) * 500); | memset(Section_value, 0, sizeof(char) * 500); | ||||
*value_count = 0; | *value_count = 0; | ||||
@@ -29,6 +29,7 @@ | |||||
#include"../Alogrithm/include/14_SingleNumber.h" | #include"../Alogrithm/include/14_SingleNumber.h" | ||||
#include"../Alogrithm/include/15_WordPattern.h" | #include"../Alogrithm/include/15_WordPattern.h" | ||||
#include"../Alogrithm/include/16_ReverseBits.h" | #include"../Alogrithm/include/16_ReverseBits.h" | ||||
#include"../Alogrithm/include/18_PlusOne.h" | |||||
int CalcCount(int n, char(*str)[10],const char *FileName); | int CalcCount(int n, char(*str)[10],const char *FileName); | ||||