目录
1、给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。
2、无重复字符的最长字符串 ,给定一个字符串 s 请你找出其中不含有重复字符的最长字符串的长度。
3、给定两个字符串 s 和 t ,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。
4、定义一个函数,用来取得一个数字的所有因子,把所有因子返回
5、输入一个字符串,判断其是否是合法标识符
6、输入两个整数 输出两个整数的最大公约数
1、给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。
示例 1:
输入: nums = [1, 2, 3, 4, 5, 6, 7], k = 3
输出: [5, 6, 7, 1, 2, 3, 4]
解释:
向右轮转 1 步: [7, 1, 2, 3, 4, 5, 6]
向右轮转 2 步: [6, 7, 1, 2, 3, 4, 5]
向右轮转 3 步: [5, 6, 7, 1, 2, 3, 4]
示例 2:
输入:nums = [-1, -100, 3, 99], k = 2
输出:[3, 99, -1, -100]
解释:向右轮转 1 步: [99, -1, -100, 3]
向右轮转 2 步: [3, 99, -1, -100]
Console.Write("请输入一串整数,以空格隔开:");
string[] nums = (Console.ReadLine()).Split(',');
Console.Write("请输入向右轮转k个位置:");
int k = int.Parse(Console.ReadLine());for (int i = 0; i < k; i++)
{string temp = nums[nums.Length - 1];for (int j = nums.Length - 2; j >= 0; j--){nums[j + 1] = nums[j]; }nums[0] = temp;
}// 输出结果,用逗号分隔
Console.WriteLine(string.Join(",", nums));
2、无重复字符的最长字符串 ,给定一个字符串 s 请你找出其中不含有重复字符的最长字符串的长度。
Console.Write("请输入一个字符串:");string s = Console.ReadLine();int Maxlong = 0; //记录不含有重复字符的最长字符的长度// 外层循环遍历每个字符作为起始点for (int i = 0; i < s.Length; i++){bool[] charExists = new bool[256]; // 定义一个长度为256的空的布尔数组(每一位默认值为false),用于记录字符是否出现过int count = 0; // 记录不含有重复字符的长度// 内层循环检查后续字符for (int j = i; j < s.Length; j++){char c = s[j];if (charExists[c]){break; // 发现重复字符,终止当前子串检查}charExists[c] = true; //存储在对应ASCII编号的位置,ASCII编号 s[j]=a; a=97; charExists[a]=charExists[97]= truecount++;}//保存最大值if (count > Maxlong){Maxlong = count;} }Console.WriteLine($"不含有重复字符的最长字符串的长度为: {Maxlong}");
3、给定两个字符串 s 和 t ,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。
示例 1:
输入:s = "abcd", t = "abcde"
输出:"e"
解释:'e' 是那个被添加的字母。示例 2:
输入:s = "", t = "y"
输出:"y"
Console.Write("请输入一个只包含小写字母字符串:");
string s = Console.ReadLine();Console.Write("请再输入一个与上面输入相同但在随机位置添加一个字母的字符串:");
string t = Console.ReadLine();int sign = 1;
for (int i = 0; i < s.Length; i++)
{if (s[i] == t[i]){sign++;continue;}else {Console.WriteLine($"'{t[i]}'是那个被添加的字母");break;}}
if (sign == t.Length)
{ Console.WriteLine($"'{t[s.Length]}'是那个被添加的字母"); }
4、定义一个函数,用来取得一个数字的所有因子,把所有因子返回
static void Main(string[] args)
{//定义一个函数,用来取得一个数字的所有因子,把所有因子返回foreach (var t in Factor(6)){ Console .Write(t+" ");}
}static int[] Factor(int n)
{int count = 0;for (int i = 1; i <= n; i++){ if (n%i==0){count++;} }int[] ints = new int[count];int m = 0;for (int i = 1; i <= n; i++){if (n % i == 0){ints[m] =i;m++;}}return ints;
}
5、输入一个字符串,判断其是否是合法标识符
//输入一个字符串,判断其是否是合法标识符
Console.WriteLine("请输入一个字符串:");
string str = Console.ReadLine();
Char[] s = str.ToCharArray(); //把字符串转换为字符数组
bool b=true;
for (int i = 0; i < s.Length; i++)
{if (s[0] >= '0' && s[0] <= '9'){b = false;Console.WriteLine("不合法");break;}if (b){if (s[i] >= '0' && s[i] <= '9' || s[i] >= 'a' && s[i] <= 'z' || s[i] >= 'A' && s[i] <= 'Z' || s[i] == '_'){b = true;}else{b = false;}}
}if (b){Console.WriteLine("合法");}else{Console.WriteLine("不合法");}
6、输入两个整数 输出两个整数的最大公约数
static void Main(string[] args)
{//输入两个整数 输出两个整数的最大公约数Console.WriteLine("输入两个整数:");int n=int.Parse (Console .ReadLine());int m=int.Parse (Console .ReadLine());int gcd = CalculateGCD(n, m);Console.WriteLine($"最大公约数是: {gcd}");
}static int CalculateGCD(int a, int b)
{// 处理负数输入(转换为正数计算)a = Math.Abs(a);b = Math.Abs(b);while (b != 0){int temp = b;b = a % b;a = temp;}return a;
}