C#leetcode练习简单篇
Posted RyouJou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#leetcode练习简单篇相关的知识,希望对你有一定的参考价值。
文章目录
简单篇
1.两数之和【双循环】
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
示例 1:
输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
//方法一:暴力法
public class Solution
public int[] TwoSum(int[] nums, int target)
for (int i = 0; i < nums.Length; i++)
for (int j = i + 1; j < nums.Length; j++)
if (nums[i] + nums[j] == target)//判断相等
return new int[] i, j ;//返回数组
return new int[] 0, 0 ;
7.整数反转【整形转换字符串、Reverse()】
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例 1:
输入:x = 123
输出:321
public int Reverse(int x)
if (x < 0)
int.TryParse(new string((-x).ToString().Reverse().ToArray()), out x);
// 程序开发中,免不了不同数据类型之间的转换。C#中针对转换有了一个TryParse的方法。
// int.TryParse(string s,out int i) 的参数: s是要转换的字符串,i 是转换的结果
// 如果转换为int类型成功则返回true。否则返回false
//.ToString() Int.ToString(format):
//.Reverse() 反转数组中元素的顺序
//.ToArray() 将List集合转换为对应的Array数组元素
// out x
return -x;
else
int.TryParse(new string(x.ToString().Reverse().ToArray()), out x);
return x;
//通过使用 string 构造函数
char[] letters = 'H', 'e', 'l', 'l','o' ;
string greetings = new string(letters);
9.回文数【整形转换字符串、Reverse()】
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
输入:x = 121
输出:true
public class Solution
public bool IsPalindrome(int x)
string str1 = x.ToString();
string str2 = new string(x.ToString().Reverse().ToArray());//使用.Reverse() 反转数组中元素的顺序
if (str1 != str2) //判断是否相等
return false;
return true;
14. 最长公共前缀【Equals、Length、Substring】
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入:strs = [“flower”,“flow”,“flight”]
输出:“fl”
public class Solution
public string LongestCommonPrefix(string[] strs)
// 变量-结果
string result = "";
//健壮性避免为空
if(strs.Length == 0)
return "";
for(int i = 0;i< strs[0].Length;i++)//外循环提取第一个字符串
for(int j = 1;j<strs.Length;j++)//内循环提取数组剩下的字符串比较
if(i>=strs[j].Length || !strs[0][i].Equals(strs[j][i]))//超出长度或者不相等
return result;
//跳出内循环后,拼接字符串
result=strs[0].Substring(0,i+1);//从index0到i位置
return result;
以上是关于C#leetcode练习简单篇的主要内容,如果未能解决你的问题,请参考以下文章