按降序排列字符串的程序

给定一个字符串,按降序排序。 例如:

null
Input : alkasinghOutput : snlkihgaa Input : nupursinghOutput : uusrpnnihg Input : geeksforgeeksOutput : ssrokkggfeeee 

A. 简单解决方案 是使用库排序功能 std::sort()

C++

// CPP program to sort a string in descending
// order using library function
#include <bits/stdc++.h>
using namespace std;
void descOrder(string s)
{
sort(s.begin(), s.end(), greater< char >());
}
int main()
{
string s = "geeksforgeeks" ;
descOrder(s); // function call
return 0;
}


JAVA

// Java program to sort a string in descending
// order using library function
import java.util.*;
class GFG
{
static void descOrder( char [] s)
{
Arrays.sort(s);
reverse(s);
}
static void reverse( char [] a)
{
int i, n = a.length;
char t;
for (i = 0 ; i < n / 2 ; i++)
{
t = a[i];
a[i] = a[n - i - 1 ];
a[n - i - 1 ] = t;
}
}
// Driver code
public static void main(String[] args)
{
char [] s = "geeksforgeeks" .toCharArray();
descOrder(s); // function call
System.out.println(String.valueOf(s));
}
}
// This code is contributed by 29AjayKumar


python

# Python program to sort
# a string in descending
# order using library function
def descOrder(s):
s.sort(reverse = True )
str1 = ''.join(s)
print (str1)
def main():
s = list ( 'geeksforgeeks' )
# function call
descOrder(s)
if __name__ = = "__main__" :
main()
# This code is contributed by
# prabhat kumar singh


C#

// C# program to sort a string in descending
// order using library function
using System;
class GFG
{
static void descOrder( char [] s)
{
Array.Sort(s);
reverse(s);
}
static void reverse( char [] a)
{
int i, n = a.Length;
char t;
for (i = 0; i < n / 2; i++)
{
t = a[i];
a[i] = a[n - i - 1];
a[n - i - 1] = t;
}
}
// Driver code
public static void Main(String[] args)
{
char [] s = "geeksforgeeks" .ToCharArray();
descOrder(s); // function call
Console.WriteLine(String.Join( "" ,s));
}
}
// This code is contributed by Rajput-Ji


PHP

<?php
// PHP program to sort a string in descending
// order using library function
function descOrder( $s )
{
$s = str_split ( $s );
rsort( $s );
echo implode( '' , $s );
}
// Driver Code
$s = "geeksforgeeks" ;
descOrder( $s ); // function call
// This code is contributed by ita_c
?>


Javascript

<script>
//  JavaScript program to sort
//  a string in descending
//  order using library function
function descOrder(s) {
s.sort().reverse();
str1 = s.join( "" );
document.write(str1);
}
var s = "geeksforgeeks" ;
s = s.split( "" );
// function call
descOrder(s);
</script>


输出:

 ssrokkggfeeee 

时间复杂度为:O(n logn) 一 有效的方法 首先要注意的是,总共只能有26个独特的字符。因此,我们可以将从“a”到“z”的所有字符的出现次数存储在散列数组中。散列数组的第一个索引将表示字符“a”,第二个索引将表示“b”,依此类推。最后,我们将简单地遍历散列数组,并打印从“z”到“a”的字符,这些字符在输入字符串中出现的次数。 以下是上述理念的实施:

C++

// C++ program to sort a string of characters
// in descending order
#include <bits/stdc++.h>
using namespace std;
const int MAX_CHAR = 26;
// function to print string in sorted order
void sortString(string& str)
{
// Hash array to keep count of characters.
// Initially count of all charters is
// initialized to zero.
int charCount[MAX_CHAR] = { 0 };
// Traverse string and increment
// count of characters
for ( int i = 0; i < str.length(); i++)
// 'a'-'a' will be 0, 'b'-'a' will be 1,
// so for location of character in count
// array we will do str[i]-'a'.
charCount[str[i] - 'a' ]++;
// Traverse the hash array and print
// characters
for ( int i = MAX_CHAR - 1; i >= 0; i--)
for ( int j = 0; j < charCount[i]; j++)
cout << ( char )( 'a' + i);
}
// Driver program to test above function
int main()
{
string s = "alkasingh" ;
sortString(s);
return 0;
}


JAVA

// Java program to sort a string of characters
// in descending order
class GFG
{
static int MAX_CHAR = 26 ;
// function to print string in sorted order
static void sortString(String str)
{
// Hash array to keep count of characters.
// Initially count of all charters is
// initialized to zero.
int charCount[] = new int [MAX_CHAR];
// Traverse string and increment
// count of characters
// 'a'-'a' will be 0, 'b'-'a' will be 1,
for ( int i = 0 ; i < str.length(); i++)
{
// so for location of character in count
// array we will do str[i]-'a'.
charCount[str.charAt(i) - 'a' ]++;
}
// Traverse the hash array and print
// characters
for ( int i = MAX_CHAR - 1 ; i >= 0 ; i--)
{
for ( int j = 0 ; j < charCount[i]; j++)
{
System.out.print(( char ) ( 'a' + i));
}
}
}
// Driver code
public static void main(String[] args)
{
String s = "alkasingh" ;
sortString(s);
}
}
// This code is contributed by 29AjayKumar


Python3

# Python program to sort a string of characters
# in descending order
MAX_CHAR = 26 ;
# function to print string in sorted order
def sortString( str ):
# Hash array to keep count of characters.
# Initially count of all charters is
# initialized to zero.
charCount = [ 0 ] * MAX_CHAR;
# Traverse string and increment
# count of characters
for i in range ( len ( str )):
# 'a'-'a' will be 0, 'b'-'a' will be 1,
# so for location of character in count
# array we will do str[i]-'a'.
charCount[ ord ( str [i]) - ord ( 'a' )] + = 1 ;
# Traverse the hash array and print
# characters
for i in range (MAX_CHAR - 1 , - 1 , - 1 ):
for j in range (charCount[i]):
print ( chr ( 97 + i),end = "");
# Driver program to test above function
s = "alkasingh" ;
sortString(s);
# This code is contributed by Princi Singh


C#

// C# program to sort a string of characters
// in descending order
using System;
class GFG
{
static int MAX_CHAR = 26;
// function to print string in sorted order
static void sortString(String str)
{
// Hash array to keep count of characters.
// Initially count of all charters is
// initialized to zero.
int []charCount = new int [MAX_CHAR];
// Traverse string and increment
// count of characters
// 'a'-'a' will be 0, 'b'-'a' will be 1,
for ( int i = 0; i < str.Length; i++)
{
// so for location of character in
// count array we will do str[i]-'a'.
charCount[str[i] - 'a' ]++;
}
// Traverse the hash array and print
// characters
for ( int i = MAX_CHAR - 1; i >= 0; i--)
{
for ( int j = 0; j < charCount[i]; j++)
{
Console.Write(( char ) ( 'a' + i));
}
}
}
// Driver code
public static void Main(String[] args)
{
String s = "alkasingh" ;
sortString(s);
}
}
// This code is contributed by PrinciRaj1992


Javascript

<script>
// Javascript program to sort a string of characters
// in descending order
let MAX_CHAR = 26;
// function to print string in sorted order
function sortString(str)
{
// Hash array to keep count of characters.
// Initially count of all charters is
// initialized to zero.
let charCount = new Array(MAX_CHAR);
for (let i = 0; i < charCount.length; i++)
{
charCount[i] = 0;
}
// Traverse string and increment
// count of characters
// 'a'-'a' will be 0, 'b'-'a' will be 1,
for (let i = 0; i < str.length; i++)
{
// so for location of character in count
// array we will do str[i]-'a'.
charCount[str[i].charCodeAt(0) - 'a' .charCodeAt(0)]++;
}
// Traverse the hash array and print
// characters
for (let i = MAX_CHAR - 1; i >= 0; i--)
{
for (let j = 0; j < charCount[i]; j++)
{
document.write(String.fromCharCode ( 'a' .charCodeAt(0) + i));
}
}
}
// Driver code
let s = "alkasingh" ;
sortString(s);
// This code is contributed by avanitrachhadiya2155
</script>


输出:

snlkihgaa

时间复杂性: O(n),其中n是输入字符串的长度。 辅助空间: O(1)。 本文由 普拉巴特·库马尔·辛格 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享