力扣第四天

力扣第四天,第1张

C语言刷力扣

题名
  • C语言刷力扣
  • 一 .有序数组删除重复项
  • 二.罗马数字转整数
  • 三.蓝桥杯(单词分析)
  • 四.思路
        • 用双指针实现(一)
          • (二)
          • (三)
        • 代码(一)
        • 代码(二)
        • 代码(三)

一 .有序数组删除重复项 二.罗马数字转整数 三.蓝桥杯(单词分析) 四.思路 用双指针实现(一)

如果数组中的长度为0,则数组不包含任何数则直接返回0;
给定的数组是有序的所以一定满足i

nums[i] == nums[j]

,则对任意都有

*nums[i] = =nums[k] ==nums[j]*

即相等的元素在数组中的下标一定都是连续的,利用数组有序的特点所以使用双指针的方法来删除相等元素;

设置两个指针一个快指针fast和一个慢指针slow

初始值都为1,*nums[fast]*先遍历整个数组,从下标1到n-1;
如果遍历完后没有一个数和nums[fast]一样,说明没有和nums[fast]相同的数,因此将nums[fast]的数复制到nums[slow],slow++即指向下一个位置,然后fast再加一继续查找

(二)

这道题目不同的是如果左边的数小于右边就要减去左边的数,例如 IV=4,因为I=1,V=5,所以IV=5-1等于四;(这题想了好久 我他妈好菜)

(三)

用a[s[i]] 记录每个单词的个数在进行比较

代码(一)
int removeDuplicates(int* nums, int numsSize){
	if(numsSize==0)
	{
		return  0;
	}
	
	int fast = 1;
	int slow = 1;
	while(fast < numsSize)
	{
		if(nums[fast]!=nums[fast-1])//这边是fast-1
		{
			nums[slow] = nums[fast];
			++slow;
		}
		++fast;
	} 
	return slow;
}
代码(二)
int getnum(char s)
{
    int num;
    switch(s)
    {
        case 'I' :num = 1;break;
        case 'V' :num = 5;break;
        case 'X' :num = 10;break;
        case 'L' :num = 50;break;
        case 'C' :num = 100;break;
        case 'D' :num = 500;break;
        case 'M' :num = 1000;break;
    }
    return num;
}

int romanToInt(char * s){
    int ans = 0;
    int n = strlen(s);
    for(int  i = 0;i<n;i++)
    {
        int temp = getnum(s[i]);
        if(i<n-1 && temp<getnum((s[i+1])))
        {
            ans = ans - temp;
        }
        else
        {
            ans = ans + temp;
        }
        
    }
    return ans;
}
代码(三)
#include 
#include 
#include 

int main(int argc, char *argv[])
{
  int a[128] = {0};//记录各个单词的次数
  char s[10000+1];
  scanf("%s",s);
    int len=strlen(s);
  int max = 0;
  char  t = 0;
  for(int i =0;i<len;i++)
  {
    a[s[i]]++;
    if(a[s[i]]>max)
    {
      max = a[s[i]];
      t = s[i];
    }
    else if(max == a[s[i]])
    {
      if(t>s[i])
      {
        t = s[i];
      }
    }
  }
  printf("%c\n%d",t,max);

  return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/563523.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-02
下一篇 2022-04-02

发表评论

登录后才能评论

评论列表(0条)

保存