最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++字符串和數(shù)字的去重操作和鞍點的尋找

 更新時間:2021年12月29日 16:10:13   作者:披星戴月的賈維斯  
大家好,本篇文章主要講的是C++字符串和數(shù)字的去重操作和鞍點的尋找,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽

前言

一串字符串或者一串?dāng)?shù)字的去重操作往往困擾著我們,還有鞍點的計算,也是一個令人頭疼的問題,接下來,我將用標(biāo)記法和數(shù)組的散列映射為大家剖析去重操作,以及鞍點的計算。

提示:以下是本篇文章正文內(nèi)容,下面案例可供參考

一、數(shù)字和字符串去重

1、標(biāo)記法對數(shù)字去重

#include<stdio.h>
int main()
{
	int n, i, j, flag = 1;//先將flag置一
	int a[1000];
	scanf("%d", &n);
	for (i = 0; i < n; i++)//寫一個for循環(huán)讀入數(shù)據(jù)
	{
		scanf("%d", &a[i]);
		for (j = 0; j < i; j++)
		{
			if (a[i] == a[j])
			{
				flag = 0;
				break;
			}
		}
		if (flag) printf("%d ", a[i]);
		flag = 1;//標(biāo)記的flag重新置1,循環(huán)再次繼續(xù)。
	}
 
	return 0;
}

2、標(biāo)記法對字符串去重

標(biāo)記法對字符串進(jìn)行去重操作
#include<string.h>
int main()
{
	int i, j, flag=1;
	char s[1000];
	gets(s);//直接讀入字符串,包括空格
	for (i = 0; i < strlen(s); i++)//直接用strlen計算輸入的字符串的長度
	{
		for (j = 0; j < i; j++)
		{
			if (s[i] == s[j])//如果有相同字符,則將標(biāo)記置0,并跳出循環(huán)
			{
				flag = 0;
				break;
			}
		}
		if (flag) printf("%c", s[i]);//因為是每個字符輸出,所以是%c
		flag = 1;
	}
	return 0;
}

去重之后的輸出:

?

?3散列映射對數(shù)字去重

#include<stdio.h>
int main()
{
	int n;
	int a[1000], b[6000] = { 0 };//定義兩個數(shù)組,第二個數(shù)組要開得比第一個數(shù)組大一些;
	scanf("%d", &n);
	for (int i = 0; i < n; i++) scanf("%d", &a[i]);
	for (int i = 0; i < n; i++)
	{
		b[a[i]]++;//將數(shù)組a的數(shù)當(dāng)作數(shù)組b的下標(biāo),將數(shù)組b中a數(shù)組作下標(biāo)的數(shù)都變1;
		if (b[a[i]] > 1) a[i] = -1;//若該數(shù)重復(fù)被遇到,則再加,所以但b[a[i]]>1時,說明已經(jīng)遇到過一次了
	}
	for (int i = 0; i < n; i++) if (a[i] != -1) printf("%d ", a[i]);
	return 0;
}

?4、(1)散列映射對字符串去重

#include<stdio.h>
#include<string.h>
int main()
{
	int i, j=0;
	char a[1000], b[6000] = { 0 };
	gets(a);//直接讀入字符串,包括空格
	for (i = 0; i < strlen(a); i++)//直接用strlen計算輸入的字符串的長度
	{
		b[a[i]]++;
		if (b[a[i]] > 1) a[i] = -1; //若該數(shù)重復(fù)被遇到,則再加,所以但b[a[i]] > 1時,說明已經(jīng)遇到過一次了
	}
	for (i = 0; i < strlen(a); i++)
	{
		if(a[i] !=-1) printf("%c", a[i]);
	}
	return 0;
}

(2)散列映射對字符串去重(更好理解的版本)

#include<stdio.h>
int main()
{
	char s1[400],s2[400];
	int a = 0,b=0;
	int arr[300] = {0};
	gets(s1);
	for (int i = 0; s1[i]; i++)
		a++;//計算s1的元素個數(shù)
	for (int i = a; i >=0; i--)
	{
		arr[s1[i]]++;將s1的數(shù)組內(nèi)的元素當(dāng)下標(biāo)
		if (arr[s1[i]] == 1)//如果arr數(shù)組的元素=1,則將s1的元素存到s2
		{
			s2[b] = s1[i];
			b++;計算數(shù)組s2的個數(shù)
		}
	}
	for (int i = b - 1; i >= 0; i--)
		printf("%c", s2[i]);
	return 0;
}

二、鞍點的計算

?什么是鞍點:有1個n×n的矩陣,從左上到右下稱為主斜線(傾角135o),從右上到左下稱為次斜線(傾角45o),在主斜線上最大,次斜線上最小的元素稱為該矩陣的斜線鞍點。

#include<stdio.h>
int a[100][100];
int main()
{
	int p[200], q[200];//p主大,q主小
	int n, i, m,j,s;
	scanf("%d", &n);
	for (i = 0; i < n; i++)
		for (j = 0; j < n; j++) scanf("%d", &a[i][j]);
	for (i = 0; i < 2 * n - 1; i++)//線條數(shù)
	{
		p[i] = 0x80000000;//最小整數(shù)
		q[i] = 0x7fffffff;//最大整數(shù)
	}
	for (i = 0; i < n; i++)
		for (j = 0; j < n; j++)
		{
			if (a[i][j] > p[n + i - j - 1]) p[n + i - j - 1] = a[i][j];//找主斜線的最大值
			if (a[i][j] < q[i + j]) q[i + j] = a[i][j];//找次斜線最小值
		}
	s = 0;
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
		{
			if (a[i][j] == p[n + i - j - 1] && a[i][j] == q[i + j])
				s += a[i][j];
		}
	}printf("%d", s);
	return 0;
}

總結(jié)

提示:這里對文章進(jìn)行總結(jié):
例如:以上就是今天要講的內(nèi)容,本文僅僅簡單介紹了pandas的使用,而pandas提供了大量能使我們快速便捷地處理數(shù)據(jù)的函數(shù)和方法。

到此這篇關(guān)于C++字符串和數(shù)字的去重操作和鞍點的尋找的文章就介紹到這了,更多相關(guān)C++去重和鞍點尋找內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 全面了解結(jié)構(gòu)體、聯(lián)合體和枚舉類型

    全面了解結(jié)構(gòu)體、聯(lián)合體和枚舉類型

    下面小編就為大家?guī)硪黄媪私饨Y(jié)構(gòu)體、聯(lián)合體和枚舉類型。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • C語言堆棧入門指南

    C語言堆棧入門指南

    我身邊的一些編程的朋友以及在網(wǎng)上看帖遇到的朋友中有好多也說不清堆棧,所以我想有必要給大家分享一下我對堆棧的看法,有說的不對的地方請朋友們不吝賜教,這對于大家學(xué)習(xí)會有很大幫助
    2014-01-01
  • Visual Studio2000系列版本安裝OpenGL的圖文教程

    Visual Studio2000系列版本安裝OpenGL的圖文教程

    這篇文章主要介紹了Visual Studio2000系列版本安裝OpenGL的圖文教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • VC++中HTControl的CHTButton按鈕控件類用法實例解析

    VC++中HTControl的CHTButton按鈕控件類用法實例解析

    這篇文章主要介紹了VC++中HTControl的CHTButton按鈕控件類用法,對于大家進(jìn)行VC++項目開發(fā)有一定的幫助作用,需要的朋友可以參考下
    2014-08-08
  • C語言打印正方形實例代碼

    C語言打印正方形實例代碼

    大家好,本篇文章主要講的是C語言打印正方形實例代碼,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • OpenCV實現(xiàn)輪廓的發(fā)現(xiàn)

    OpenCV實現(xiàn)輪廓的發(fā)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了OpenCV如何實現(xiàn)輪廓的發(fā)現(xiàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • VSCode C/C++多文件編譯配置小結(jié)

    VSCode C/C++多文件編譯配置小結(jié)

    本文主要介紹了VSCode C/C++多文件編譯配置小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • 詳解OpenMP的線程同步機(jī)制

    詳解OpenMP的線程同步機(jī)制

    在本篇文章當(dāng)中主要給大家介紹?OpenMP?當(dāng)中線程的同步和互斥機(jī)制,在?OpenMP?當(dāng)中主要有三種不同的線程之間的互斥方式。下面就來和大家來討論一下OpenMP當(dāng)中的互斥操作,需要的可以參考一下
    2023-01-01
  • C++17使用std::optional表示可能存在的值

    C++17使用std::optional表示可能存在的值

    本文主要介紹了C++17使用std::optional表示可能存在的值,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • C語言中二叉樹的后序遍歷詳解

    C語言中二叉樹的后序遍歷詳解

    大家好,本篇文章主要講的是C語言中二叉樹的后序遍歷詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01

最新評論

曲水县| 台山市| 阿拉善左旗| 台北县| 威远县| 娄烦县| 稻城县| 沛县| 错那县| 虹口区| 天台县| 依安县| 周宁县| 固原市| 康定县| 舞钢市| 六枝特区| 唐河县| 山阳县| 高邑县| 怀化市| 东方市| 荔浦县| 资阳市| 扬州市| 读书| 青龙| 专栏| 哈密市| 玉树县| 陕西省| 广平县| 桓仁| 察雅县| 漠河县| 泰来县| 嵊泗县| 民和| 永城市| 赤峰市| 苍梧县|