目录
1、给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。
2、无重复字符的最长字符串 ,给定一个字符串 s 请你找出其中不含有重复字符的最长字符串的长度。
3、给定两个字符串 s 和 t ,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。
4、定义一个函数,用来取得一个数字的所有因子,把所有因子返回
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]= true
count++;
}
//保存最大值
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;
}