目錄
使子字串不同的演算法
建立所有不同子字串的語法
方法
找到最小的更改次數,使得字串的所有子字串都變得不同
範例1:使用C
輸出
範例2:透過使用Java
範例1:使用Python
結論
首頁 後端開發 C++ 最小改動字串使得所有子字串都不相同

最小改動字串使得所有子字串都不相同

Sep 04, 2023 pm 02:49 PM
字串 子字串 最小改動

最小改動字串使得所有子字串都不相同

字串是一種特定的對象,它表示資料字元的序列和流動。字串是一種資料容器,總是以文字格式表示。它也用於概念、比較、拆分、連接、替換、修剪、長度、內部化、相等、比較和子字串操作。子字串()是一種資料精煉過程,它從開始到結束提取保存的資料之間的資料。子字串()不會改變原始字串。在資料集中,當我們有不同的字元時,它們可以被表示為不同的資料元素。例如:'a'和'r'是不同的,而'r'和'r'是相同的。所以,一個字串比如說,橘子包含6個不同的字元。同樣,字串蘋果只包含4個不同的字元。

假設,"s" 是一個字串,我們需要找到所有子字串所需的最小改變次數,以使字串變得不同。

  • 字串的長度 - 26

  • 給定輸入− T 是第一行的測試案例,為一個整數。對於每個測試案例,只會有一行包含26個字元。

  • 輸出 - 我們將獲得每個測試案例的最小變化次數。

  • 邏輯方法流程的限制

    • 1

    • 1

在今天的文章中,我們將學習如何修改字串以使所有子字串都不同。

使子字串不同的演算法

這是一種可能的演算法,用於對字串進行操作,使得所有子字串都是不同的,同時盡量減少改變。

  • 第一步-開始。

  • 第二步− 使用兩個巢狀循環來產生子字串。

  • 第三步 - 外循環從 i = 0,字串長度減1。

  • 第4步 - 內循環從 j = 0,字串長度減1。

  • 第五步− 使用零值建立計數變數。

  • 步驟6− 在外部迴圈內部,建立一個distinct_character變數。

  • 第7步-建立頻率數組。

  • Step 8− Set all elements zero.

  • 第9步 - 檢查字串[j] - 'a'的頻率是否為零。

  • 步驟10− 如果為零,則將其增加1。

  • 步驟11− 否則,將其分解為內部循環。

  • 第12步- 如果計數大於零,則傳回計數。

  • 第13步- 否則,返回-1。

  • 第14步- 終止。

建立所有不同子字串的語法

string.substring(start, end)
登入後複製

在這個語法中,我們可以看到如何對一個字串進行最小的更改,使得所有的子字串都不相同。

  • 參數

    • 開始 - 需要宣告一個起始位置。這裡的第一個字元的索引是0。

    • End − 它是一個可選的過程,位於結束位置(包括但不限於)。

方法

方法1−找到使字串的所有子字串都變成不同的最小更改次數。

找到最小的更改次數,使得字串的所有子字串都變得不同

在這個方法中,我們將學習如何讓所有的子字串都不同。在這裡,每個字元都必須不同。我們只需要找出字元的數量。如果字串的長度超過26,則我們只需要將其轉換為一個字串。在這裡,我們將在不同的語言環境中編寫相同的邏輯。

範例1:使用C

#include <bits/stdc++.h>
using namespace std;
const int MAX_CHAR = 26;
int minChanges(string &str) {
   int n = str.length();
   if (n > MAX_CHAR)
   return -1;
   int dist_count = 0;
   int count[MAX_CHAR] = {0};
   for (int i = 0; i < n; i++) {
      if (count[str[i] - 'a'] == 0)
      dist_count++;
      count[(str[i] - 'a')]++;
   }
   return (n - dist_count);
}
int main() {
   string str = "aebaecedabbeedee";
   cout << minChanges(str);
   return 0;
}
登入後複製

輸出

11
登入後複製
登入後複製
登入後複製

範例2:透過使用Java

import java.lang.*;
import java.util.*;
public class tutorialspoint {
   static final int MAX_CHAR = 26;
   public static int minChanges(String str) {
      int n = str.length();
      if (n > MAX_CHAR)
      return -1;
      int dist_count = 0;
      int count[] = new int[MAX_CHAR];
      for(int i = 0; i < MAX_CHAR; i++)
      count[i] = 0;
      for (int i = 0; i < n; i++) {
         if(count[str.charAt(i)-'a'] == 0)
         dist_count++;
         count[str.charAt(i)-'a']++;
      }
      return (n-dist_count);
   }
   public static void main (String[] args) {
      String str = "aebaecedabbeedee";
      System.out.println(minChanges(str));
   }
}
登入後複製

輸出

11
登入後複製
登入後複製
登入後複製

範例1:使用Python

MAX_CHAR = [26]
def minChanges(str):

	n = len(str )
	if (n > MAX_CHAR[0]):
		return -1
	dist_count = 0
	count = [0] * MAX_CHAR[0]

	for i in range(n):
		if (count[ord(str[i]) - ord('a')] == 0) :
			dist_count += 1
		count[(ord(str[i]) - ord('a'))] += 1
	return (n - dist_count)
if __name__ == '__main__':
	str = "aebaecedabbeedee"
	print(minChanges(str))
	
登入後複製

輸出

11
登入後複製
登入後複製
登入後複製

結論

今天,在本文中,我們學習瞭如何透過最小的改變使所有子字串都不同。在這裡,我們透過在C 、Java和Python中遵循所述演算法創建了一些可能的程式碼。希望這能幫助您對這個主題有更全面的了解。

以上是最小改動字串使得所有子字串都不相同的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP中int型別轉字串的方法詳解 PHP中int型別轉字串的方法詳解 Mar 26, 2024 am 11:45 AM

PHP中int型別轉字串的方法詳解在PHP開發中,常會遇到將int型別轉換為字串型別的需求。這種轉換可以透過多種方式實現,本文將詳細介紹幾種常用的方法,並附帶具體的程式碼範例來幫助讀者更好地理解。一、使用PHP內建函數strval()PHP提供了一個內建函數strval(),可以將不同類型的變數轉換為字串類型。當我們需要將int型別轉換為字串型別時,

Golang字串是否以指定字元結尾的判斷方法 Golang字串是否以指定字元結尾的判斷方法 Mar 12, 2024 pm 04:48 PM

標題:Golang中判斷字串是否以指定字元結尾的方法在Go語言中,有時候我們需要判斷一個字串是否以特定的字元結尾,這在處理字串時十分常見。本文將介紹如何使用Go語言來實現這項功能,同時提供程式碼範例供大家參考。首先,讓我們來看看Golang中如何判斷一個字串是否以指定字元結尾的方法。 Golang中的字串可以透過索引來取得其中的字符,而字串的長度可

怎麼重複字串_python重複字串教程 怎麼重複字串_python重複字串教程 Apr 02, 2024 pm 03:58 PM

1.先開啟pycharm,進入到pycharm首頁。 2.然後新建python腳本,右鍵--點選new--點選pythonfile。 3.輸入一段字串,代碼:s="-"。 4.接著需要把字串裡面的符號重複20次,代碼:s1=s*20。5、輸入列印輸出代碼,代碼:print(s1)。 6.最後運行腳本,在最底部會看到我們的回傳值:-就重複了20次。

Golang中如何檢查字串是否以特定字元開頭? Golang中如何檢查字串是否以特定字元開頭? Mar 12, 2024 pm 09:42 PM

Golang中如何檢查字串是否以特定字元開頭?在使用Golang程式設計時,經常會遇到需要檢查一個字串是否以特定字元開頭的情況。針對這項需求,我們可以使用Golang中的strings套件所提供的函數來實現。接下來將詳細介紹如何使用Golang檢查字串是否以特定字元開頭,並附上具體的程式碼範例。在Golang中,我們可以使用strings套件中的HasPrefix

如何在Go語言中截取字串 如何在Go語言中截取字串 Mar 13, 2024 am 08:33 AM

Go語言是一種強大且靈活的程式語言,它提供了豐富的字串處理功能,包括字串截取。在Go語言中,我們可以使用切片(slice)來截取字串。接下來,將詳細介紹如何在Go語言中截取字串,並附上具體的程式碼範例。一、使用切片截取字串在Go語言中,可以使用切片表達式來截取字串的一部分。切片表達式的語法如下:slice:=str[start:end]其中,s

解決PHP中16進位轉字串出現中文亂碼的方法 解決PHP中16進位轉字串出現中文亂碼的方法 Mar 04, 2024 am 09:36 AM

解決PHP中16進位轉字串出現中文亂碼的方法在PHP程式設計中,有時候我們會遇到需要將16進位表示的字串轉換為正常的中文字元的情況。然而,在進行這個轉換的過程中,有時會遇到中文亂碼的問題。這篇文章將為您提供解決PHP中16進位轉字串出現中文亂碼的方法,並給出具體的程式碼範例。使用hex2bin()函數進行16進位轉換PHP內建的hex2bin()函數可以將1

PHP字串比對技巧:避免模糊包含表達式 PHP字串比對技巧:避免模糊包含表達式 Feb 29, 2024 am 08:06 AM

PHP字串比對技巧:避免模糊包含表達式在PHP開發中,字串比對是常見的任務,通常用於尋找特定的文字內容或驗證輸入的格式。然而,有時候我們需要避免使用模糊的包含表達式來確保匹配的準確性。本文將介紹一些在PHP中進行字串匹配時避免模糊包含表達式的技巧,並提供具體的程式碼範例。使用preg_match()函數進行精確比對在PHP中,可以使用preg_mat

PHP字串操作:有效去除空格的實用方法 PHP字串操作:有效去除空格的實用方法 Mar 24, 2024 am 11:45 AM

PHP字串操作:有效去除空格的實用方法在PHP開發中,經常會遇到需要對字串進行去除空格操作的情況。去除空格可以讓字串更加整潔,方便後續的資料處理和顯示。本文將介紹幾種有效的去除空格的實用方法,並附上具體的程式碼範例。方法一:使用PHP內建函數trim()PHP內建函數trim()可以移除字串兩端的空格(包括空格、製表符、換行符等),非常方便且簡單易用

See all articles