国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C語言-每日刷題練習

這篇具有很好參考價值的文章主要介紹了C語言-每日刷題練習。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

[藍橋杯 2013 省 B] 翻硬幣

?C語言-每日刷題練習,c語言,開發(fā)語言,算法

題目背景

小明正在玩一個“翻硬幣”的游戲。

題目描述

桌上放著排成一排的若干硬幣。我們用?*?表示正面,用?o?表示反面(是小寫字母,不是零),比如可能情形是?**oo***oooo,如果同時翻轉左邊的兩個硬幣,則變?yōu)?oooo***oooo。現(xiàn)在小明的問題是:如果已知了初始狀態(tài)和要達到的目標狀態(tài),每次只能同時翻轉相鄰的兩個硬幣,那么對特定的局面,最少要翻動多少次呢?

輸入格式

兩行等長字符串,分別表示初始狀態(tài)和要達到的目標狀態(tài),每行長度小于?1000。

數(shù)據(jù)保證一定存在至少一種方案可以從初始狀態(tài)和要達到的目標狀態(tài)。

輸出格式

一個整數(shù),表示最小操作步數(shù)。

輸入輸出樣例

輸入輸出樣例

輸入 #1

**********
o****o****

輸出 #1

5

?輸入 #2

*o**o***o***
*o***o**o***

?輸出 #2

1
#include<stdio.h>
#include<string.h>
#include <assert.h>
int main()
{
	char arr[1000] = { 0 }, str[1000] = { 0 }, count = 0;
	scanf("%s%s", &arr, &str);
	assert(strlen(arr)== strlen(str));//斷言-判斷兩個字符串長度是否相等
	int rs = strlen(arr);
	int i = 0;
	while (i < rs)//遍歷找不同
	{
		if (arr[i] != str[i])
		{
			arr[i] = (arr[i] == '*' ? 'o' : '*');
			arr[i + 1] = (arr[i + 1] == '*' ? 'o' : '*');
			count++;
		}
		i++;
	}
	printf("%d", count);
	return 0;
}

?[NOIP2006 普及組] 明明的隨機數(shù)

C語言-每日刷題練習,c語言,開發(fā)語言,算法

題目描述

明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了?N?個?1?到?1000?之間的隨機整數(shù)?(N≤100),對于其中重復的數(shù)字,只保留一個,把其余相同的數(shù)去掉,不同的數(shù)對應著不同的學生的學號。然后再把這些數(shù)從小到大排序,按照排好的順序去找同學做調查。請你協(xié)助明明完成“去重”與“排序”的工作。

輸入格式

輸入有兩行,第?1?行為?1?個正整數(shù),表示所生成的隨機數(shù)的個數(shù)?N。

第?2?行有?N?個用空格隔開的正整數(shù),為所產(chǎn)生的隨機數(shù)。

輸出格式

輸出也是兩行,第?1?行為?1?個正整數(shù)?M,表示不相同的隨機數(shù)的個數(shù)。

第?2?行為?M?個用空格隔開的正整數(shù),為從小到大排好序的不相同的隨機數(shù)。

輸入輸出樣例

輸入 #1

10
20 40 32 67 40 20 89 300 400 15

輸出 #1

8
15 20 32 40 67 89 300 400
#include<stdio.h>
int main()
{
	int n = 0, str[100] = { 0 }, temp = 0;
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &str[i]);
	}
	for (int i = 0; i < n - 1; i++)
	{
		for (int j = 0; j < n - 1 - i; j++)
		{
			if (str[j + 1] < str[j])
			{
				temp = str[j + 1];
				str[j + 1] = str[j];
				str[j] = temp;
			}
		}
	}
	for (int i = 0; i < n - 1; i++)//n-1是為了防止越界
	{
		//把i+1后邊的元素往前覆蓋
		if (str[i] == str[i + 1])
		{
			for (int k = i; k < n - 1; k++)
			{
				str[k] = str[k + 1];
			}
			n--;
			i--;
		}
	}
	printf("%d\n", n);
	for (int i = 0; i < n; i++)
	{
		printf("%d ", str[i]);
	}
	return 0;
}

P8835 [傳智杯 #3 決賽] 子串

C語言-每日刷題練習,c語言,開發(fā)語言,算法

題目背景

disangan233 喜歡字符串,于是 disangan333 想讓你找一些 disangan233 喜歡的串。

題目描述

在傳智的開發(fā)課堂上,希望您開發(fā)一款文檔處理軟件。

給定?T?組詢問,每次給定?2?個長度為?n,m?的只含英文字母的字符串?a,b,求?a?在?b?中的出現(xiàn)次數(shù),相同字符不區(qū)分大小寫。注意?a?是?b?中連續(xù)子序列。

對于所有數(shù)據(jù),T≤100,∑n≤∑m≤10^3。字符串僅由大小或者小寫的英文字母組成。

輸入格式

輸入共?3T+1?行。

第?1?行輸入?1?個正整數(shù)?T。

接下來共?T?組輸入,每組輸入共?3?行。

第?1?行輸入?2?個正整數(shù)?n,m。

第?2?行輸入一個長度為?n?的字符串?a。

第?3?行輸入一個長度為?m?的字符串?b。

輸出格式

輸出共?T?行,第 i?行輸出?1?個整數(shù),表示詢問?i?的答案。

輸入輸出樣例

輸入 #1

5
3 10
abc
abcabcabca
2 10
aa
AAaAaaAaAa
5 5
AbCdE
eDcBa
5 5
abcde
ABCDE
3 10
aba
ABaBaAbaBA

輸出 #1

3
9
0
1
4

解法一:?

#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
#include<string.h>
int main()
{
	int  t = 0, n = 0, m = 0, count = 0;//t小組數(shù),n,m字符串的長度,count計數(shù)器
	scanf("%d", &t);
	while (t--)
	{
		scanf("%d%d", &n, &m);
		char* a = (char*)malloc( (n+1) * sizeof(char));//開辟數(shù)組a的動態(tài)內存空間
		                                               //因為數(shù)組類型是字符串要留一個字節(jié)放斜桿零,防止越界訪問
		if (a == NULL)
		{
			return  1;
		}
		scanf("%s", a);
		char* b = (char*)malloc( (m+1) * sizeof(char));//開辟數(shù)組b的動態(tài)內存空間
		if (b == NULL)
		{
			return 1;
		}
			scanf("%s", b);
			char* ptr = b;//記錄b的首地址
		for (int i = 0; i < n; i++)
		{
			*a = tolower(*a);//統(tǒng)一轉換為小寫
		}
		for (int i = 0; i < m; i++)
		{
			*b = tolower(*b);
		}
		for (int i = 0; i < m; i++)
		{
			if (strncmp( a ,ptr , n) == 0)  //比較前n個字符相同,count++
			{
				count++;
				ptr + n;                    //指向b的指針向前挪動n位比較下一個
			}
			ptr++;
			if (m - i < n)
			{
				break;
			}
		}
		printf("%d", count);
		free(a);                            //釋放動態(tài)空間
		a = NULL;
		free(b);
		b = NULL;
	}
	return 0;
}

?解法一的運行時間可能會超時,可以試試解法二:

#include <stdio.h>
#include <string.h>
#include <ctype.h>
// 函數(shù)用于計算字符串a(chǎn)在字符串b中的出現(xiàn)次數(shù)
int JiShu(char* a, char* b) 
{
    int count = 0;
    int lenA = strlen(a);
    int lenB = strlen(b);
    for (int i = 0; i <= lenB - lenA; i++)
    {
        // 忽略大小寫比較
        int flag = 1;
        for (int j = 0; j < lenA; j++) 
        {
            if (tolower(a[j]) != tolower(b[i + j]))
            {
                flag = 0;
                break;
            }
        }
        if (flag) 
        {
            count++;
        }
    }

    return count;
}
int main() 
{
    int t;
    scanf("%d", &t);
    for (int i = 0; i < t; i++)
    {
        int n, m;
        scanf("%d %d", &n, &m);

        char a[1001], b[1001];
        scanf("%s", a);
        scanf("%s", b);

        int rs = JiShu(a, b);
        printf("%d\n", rs);
    }
    return 0;
}

?文章來源地址http://www.zghlxwxcb.cn/news/detail-751643.html

到了這里,關于C語言-每日刷題練習的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 數(shù)據(jù)結構算法leetcode刷題練習(1)

    數(shù)據(jù)結構算法leetcode刷題練習(1)

    給定一個三角形 triangle ,找出自頂向下的最小路徑和。 每一步只能移動到下一行中相鄰的結點上。相鄰的結點 在這里指的是 下標 與 上一層結點下標 相同或者等于 上一層結點下標 + 1 的兩個結點。也就是說,如果正位于當前行的下標 i ,那么下一步可以移動到下一行的下標

    2023年04月24日
    瀏覽(21)
  • 【C語言】【典例詳解】【刷題】猜名次&&猜兇手【循環(huán)練習】

    【C語言】【典例詳解】【刷題】猜名次&&猜兇手【循環(huán)練習】

    目錄 猜名次問題 典例題目 題目分析: 代碼實現(xiàn): 運行結果: 猜兇手問題? 典例題目 題目分析 代碼實現(xiàn): 運行結果: 猜名次: 5位運動員參加了10米臺跳水比賽,有人讓他們預測比賽結果: A選手說:B第二,我第三; B選手說:我第二,E第四; C選手說:我第一,D第二;

    2024年02月07日
    瀏覽(21)
  • 【算法每日一練]-練習篇 #Tile Pattern #Swapping Puzzle # socks

    【算法每日一練]-練習篇 #Tile Pattern #Swapping Puzzle # socks

    目錄 ?今日知識點: 二維前綴和 逆序對 襪子配對(感覺挺難的,又不知道說啥)? ?? Tile Pattern Swapping Puzzle? socks ???????? 331 題意:有一個10^9*10^9的方格。W表示白色方格,B表示黑色方格。每個(i,j)方的顏色由(i%n,j%n) 決定。我們給出n*n的字符陣列。進行q此查詢。每次輸入

    2024年01月20日
    瀏覽(24)
  • aardio開發(fā)語言Excel數(shù)據(jù)表讀取修改保存實例練習
  • 每日刷題記錄(十二)

    描述 Fibonacci數(shù)列是這樣定義的: F[0] = 0 F[1] = 1 for each i ≥ 2: F[i] = F[i-1] + F[i-2] 因此,F(xiàn)ibonacci數(shù)列就形如:0, 1, 1, 2, 3, 5, 8, 13, …,在Fibonacci數(shù)列中的數(shù)我們稱為Fibonacci數(shù)。給你一個N,你想讓其變?yōu)橐粋€Fibonacci數(shù),每一步你可以把當前數(shù)字X變?yōu)閄-1或者X+1,現(xiàn)在給你一個數(shù)N求最

    2023年04月09日
    瀏覽(20)
  • 每日刷題記錄(十七)

    求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等及條件判斷語句(A?B:C)。 示例 1: 輸入: n = 3 輸出: 6 示例 2: 輸入: n = 9 輸出: 45 本題需要用到邏輯運算符的短路性質。以邏輯運算符為例,對于A B這個表達式,如 A表達式返回False ,那么 A B 已經(jīng)確定

    2023年04月23日
    瀏覽(20)
  • 每日刷題-5

    每日刷題-5

    目錄 一、選擇題 二、算法題 1、不要二 2、把字符串轉換成整數(shù) 1、 解析:printf(格式化串,參數(shù)1,參數(shù)2,.….),格式化串: printf第一個參數(shù)之后的參數(shù)要按照什么格式打印,比如 %d---按照整形方式打印,不過格式串有一定規(guī)定, %之后跟上特定的字符才代表一定的格式化 。

    2024年02月09日
    瀏覽(18)
  • 【每日刷題】Day12

    1.?67. 二進制求和 - 力扣(LeetCode) //思路:將兩個字符串的內容先逆置,然后分別從頭開始遍歷,如果當前位置兩個字符串內容都為1,則說明要進位,使用carry變量來判斷是否進位,動態(tài)開辟一塊內存ans用于存放求和后每個位置的值 void reserve(char* s) //逆置函數(shù) { ? ? int len

    2024年04月13日
    瀏覽(14)
  • 每日刷題_

    347.?前 K 個高頻元素 給你一個整數(shù)數(shù)組? nums ?和一個整數(shù)? k ?,請你返回其中出現(xiàn)頻率前? k ?高的元素。你可以按? 任意順序 ?返回答案。 一共有三種不同的題解: 1、把數(shù)據(jù)存到哈希表中,然后通過哈希表來排序,時間復雜度n*logn 2、大根堆 k*logn 3、小根堆 k*logn 這里的

    2024年02月06日
    瀏覽(15)
  • 每日刷題記錄(十六)

    假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 示例 1: 輸入:n = 2 輸出:2 解釋:有兩種方法可以爬到樓頂。 1 階 + 1 階 2 階 示例 2: 輸入:n = 3 輸出:3 解釋:有三種方法可以爬到樓頂。 1 階 + 1 階

    2023年04月25日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包